openwrt设置内网端口映射

来源:互联网 发布:做淘宝怎么提高销量 编辑:程序博客网 时间:2024/05/22 06:09

今天在raspberry群里,一个群友提出这样一个需求:他想通过电脑访问路由器(openwrt系统)的5555端口,相当于访问树莓派的22端口。好奇葩的需求,为什么不直接连接树莓派呢。。。

本来不想理会的,可群里非有人说什么做不到,壮哉我大openwrt,网络问题上怎么会有openwrt解决不了的呢!!!

网络设备 ip 路由器(openwrt) 192.168.1.1 raspberry 192.168.1.233 电脑 192.168.1.100



刚开始时研究了一下openwrt中firewall里面的端口转发,发现好像有些问题,内网端口映射到外网端口还可以,可是内网端口映射到内网端口,总是设置不好。

就这样放弃么?回头一想,为什么不直接使用iptables呢,于是四行命令轻松解决以上需求

iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 5555 -j DNAT --to-destination 192.168.1.233:22iptables -t nat -A POSTROUTING -d 192.168.1.233 -p tcp --dport 22 -j SNAT --to 192.168.1.1iptables -A FORWARD -o eth0 -d 192.168.1.233 -p tcp --dport 22 -j ACCEPTiptables -A FORWARD -i eth0 -s 192.168.1.233 -p tcp --sport 22 -j ACCEPT

配置成功后,将配置放到防火墙的自定义规则里,后两条命令是防止firewall有一些奇怪的拦截策略而做放行用的,一般情况前两条iptables配置就足够了。
防火墙自定义规则

现在对192.168.1.1:5555的访问,其实就是对192.168.1.233:22进行访问了:

ssh pi@192.168.1.1 -p 5555

等同于

ssh pi@192.168.1.233 -p 22

0 0