我有一台运行 Kubuntu 14.04 的家庭服务器。它向外界提供网页,并为我家局域网上的所有设备提供互联网访问。我有一台 Arduino 设备,带有一个用于报告温度的 Web 服务器应用程序。我希望使用我的 Android 手机连接到 Arduino 网页。
我使用 UFW 配置我的防火墙,并希望将使用端口 225 的请求转发到我的家庭服务器的 Arduino 网页,并配置为监听端口 225。
我可以从家里的局域网的任何地方访问 Arduino,但不能从外面访问。我研究过并尝试了很多方法,但都没有成功。“检查您的端口”等网站报告说端口 225 已关闭。
任何帮助是极大的赞赏!
答案1
尝试这个
首先检查cat /proc/sys/net/ipv4/ip_forward
是否响应0
或1
。如果是0
运行命令
sudo echo 1 >/proc/sys/net/ipv4/ip_forward
这将启用 IP 转发
/etc/ufw/before.rules
然后在(文件顶部)的过滤器部分之前编辑并添加:
sudo nano etc/ufw/before.rules
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 225 -j DNAT --to-destination ip_address_of_Arduino
COMMIT
然后重新启动ufw
。
问题在于规则的位置。
您的*nat
表格位于文件开头,无法在文件末尾再次显示。将您的规则从line 82
下方移出PREROUTING
应该看起来像这样
*nat
:PREROUTING ACCEPT [0:0]
# Port fw
-A PREROUTING -i eth0 -p tcp --dport 225 -j DNAT --to-destination ip_address_of_Arduino
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT
此后开始表*filter
和其余ufw
配置。