作为IT 折腾是本能 ,自从刷了小米R2D 系统版本: 2.25.209 开发版, 原本设置192.168.1.254 6688 作为VPN 服务器映射到公网上 ,然而端口转发功能再也无法有用。
通过百度/谷歌查阅各种资源,初步判断为WEB 界面设置NAT 的转发自动生成的命令有问题。所以打算在SSH模式下手动设置转发功能:
下面文档是给自己一个记录,避免后期忘记。
1)开启小米路由SSH 模式,这个百度上有很多资料,不在重复。
2)IPTABLES 添加DNAT 转发命令,设置需要在NAT 表中的PREROUTING 链中 添加 开放的主机和端口,注意由于我主机采用的是PPPOE 上网动态IP方式,需要设定指定 pppoe-wan端口。
iptables -t nat -I PREROUTING -i pppoe-wan -p tcp --dport 6688 -j DNAT --to-destination 192.168.1.254:6688
-
命令生效后,通过iptables -t nat -L -n 查看NAT表中防火墙 设置
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:6688 to:192.168.1.254:6688
3)IPTABLES 添加SNAT 设置, 需要在NAT表中的POSTROUTING 链中 将192.168.1.254 6688的数据包通过PPPOE 伪装回复给源IP。
iptables -t nat -I POSTROUTING -d 192.168.1.254 -p tcp --dport 6688 -j MASQUERAD
-
命令生效后,通过iptables -t nat -L -n 查看NAT表中防火墙 设置
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE tcp – 0.0.0.0/0 192.168.1.254 tcp dpt:6688
4) IPTABLES 放行 filter 表中FORWARD 链 转发给192.168.1.254 6688 的数据包
iptables -I FORWARD -d 192.168.1.254 -p tcp --dport 6688 -j ACCEP
-
命令生效后,通过iptables -t filter -L -n 查看filter 表的防火墙设置
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT tcp – 0.0.0.0/0 192.168.1.254 tcp dpt:6688
5)通过站长工具端口扫描, 发现6688 端口已经开放。
6)最后IPTABLES 配置需要保存,否则小米路由器重启的时候会恢复原来设置,导致前面所添加的配置丢失。
service iptbales save
-
该命令在小米路由R2D SSH 版本下执行失败,提示service: not found, 应该是小米路由器根据openwrt
深度定制版本,部分服务启动命令方式不同导致的,目前筋疲力尽,暂时没有兴趣再研究下去,期待有高手解决该问题。 -
附带小米路由的内核版本
root@XiaoQiang:~# uname -a Linux XiaoQiang 2.6.36 #3 MiWiFi-R2D-2.25.209 SMP PREEMPT Tue Oct 16 11:45:02 UTC 2018 armv7l GNU/Linux
更多推荐
小米路由器R2D 开发版解决NAT无效问题
发布评论