首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将接收到的数据包转发到internet

将接收到的数据包转发到internet
EN

Ask Ubuntu用户
提问于 2019-04-25 13:46:19
回答 1查看 189关注 0票数 0

我目前有一个气象站,我正试图从那里嗅出数据包,这也需要与互联网直接通信。在我当前的设置中,我在防火墙中配置了一个NAT规则,以便将数据从站点转发到我的Ubuntu服务器。我可以成功地从服务器上的站接收数据,但是为了接收到适当的数据,站需要与互联网握手。

因此,我的问题是,我如何使我的Ubuntu服务器在站和互联网之间保持一致?

编辑:为了清楚起见,我用我的旧路由器解决了这个问题,具体如下所示:

代码语言:javascript
复制
iptables -t mangle -A PREROUTING  -s 192.168.0.7 -j ROUTE --tee --gw 192.168.0.8
iptables -t mangle -A POSTROUTING -d 192.168.0.7 -j ROUTE --tee --gw 192.168.0.8

我现在的问题是我的新UniFi安全网关3P不接受“-tee”目标,我创建了以下NAT规则来将数据从我的气象站发送到我的ubuntu服务器:

代码语言:javascript
复制
set service nat rule 4500 destination port 80
set service nat rule 4500 source address 192.168.0.7
set service nat rule 4500 inbound-interface eth1
set service nat rule 4500 inside-address address 192.168.0.8
set service nat rule 4500 inside-address port 80
set service nat rule 4500 protocol tcp
set service nat rule 4500 type destination

但如前所述,这是一个死胡同,电视台无法与互联网通信。

备注:

代码语言:javascript
复制
192.167.0.1 = Gateway/USG
192.167.0.7 = Weather Station
192.167.0.8 = Ubuntu VM

提前感谢!

凯夫

EN

回答 1

Ask Ubuntu用户

发布于 2019-04-25 14:28:57

如果有可能通过你的ubuntu为气象站分配一个默认的路径,那么它将更加漂亮,现在您将不得不三次使用NAT,而这并不是可靠的,也不是很容易解决的。

在ubuntu上,要将其设置为internet网关而不仅仅是端点,您需要启用ip_forwarding并添加iptables规则来伪装为传出流量绑定的传入流量,以假装它来自您的Ubuntu。

代码语言:javascript
复制
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE

您还可能需要在转发中添加一条规则,以显式地允许转发通信,这在默认情况下可能已经接受所有内容。

代码语言:javascript
复制
iptables -A FORWARD -i enp0s3 -j ACCEPT

这将匹配所有非指定给您的ubuntu的传入通信量(通过),因此,如果可能的话,它也将匹配源(-s)和/或目的地(-d)等特性。

代码语言:javascript
复制
iptables -A FORWARD -s 1.2.3.4 -d 5.6.7.8 -i enp0s3 -j ACCEPT
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1138086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档