我目前有一个气象站,我正试图从那里嗅出数据包,这也需要与互联网直接通信。在我当前的设置中,我在防火墙中配置了一个NAT规则,以便将数据从站点转发到我的Ubuntu服务器。我可以成功地从服务器上的站接收数据,但是为了接收到适当的数据,站需要与互联网握手。
因此,我的问题是,我如何使我的Ubuntu服务器在站和互联网之间保持一致?
编辑:为了清楚起见,我用我的旧路由器解决了这个问题,具体如下所示:
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服务器:
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但如前所述,这是一个死胡同,电视台无法与互联网通信。
备注:
192.167.0.1 = Gateway/USG
192.167.0.7 = Weather Station
192.167.0.8 = Ubuntu VM提前感谢!
凯夫
发布于 2019-04-25 14:28:57
如果有可能通过你的ubuntu为气象站分配一个默认的路径,那么它将更加漂亮,现在您将不得不三次使用NAT,而这并不是可靠的,也不是很容易解决的。
在ubuntu上,要将其设置为internet网关而不仅仅是端点,您需要启用ip_forwarding并添加iptables规则来伪装为传出流量绑定的传入流量,以假装它来自您的Ubuntu。
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE您还可能需要在转发中添加一条规则,以显式地允许转发通信,这在默认情况下可能已经接受所有内容。
iptables -A FORWARD -i enp0s3 -j ACCEPT这将匹配所有非指定给您的ubuntu的传入通信量(通过),因此,如果可能的话,它也将匹配源(-s)和/或目的地(-d)等特性。
iptables -A FORWARD -s 1.2.3.4 -d 5.6.7.8 -i enp0s3 -j ACCEPThttps://askubuntu.com/questions/1138086
复制相似问题