Geo*_*eos 3 ubuntu ssh forwarding
我有一台 Ubuntu PC,带有两个网卡,充当路由器。一张网卡eth0连接到互联网,另一张eth1连接到局域网。我想将 LAN 中不同主机的 ssh 端口暴露给外部世界的不同端口号。即“ssh user@router -p 1234”应该转到host1的ssh端口,“ssh user@router -p 3456”应该ssh到host2。我为 host1 添加了以下 iptable 规则,但它不起作用:
iptables -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 1234 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -t nat -p tcp -d $EXTIP --dport 1234 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j DNAT --to-destination 10.9.0.2:22
Run Code Online (Sandbox Code Playgroud)
EXTIF是外部接口(eth0),INTIF是内部接口(eth1),EXTIP是eth0的IP地址。
有什么帮助吗?(不确定问题是否清楚,如果有人理解我的意图,请使用正确的行话进行编辑)
FORWARD 链的规则需要使用目标端口,因为它是在预路由链之后执行的,即在 DNAT 完成之后。
iptables -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
各种表和链如何链接在一起的很好的概述图如下:http : //www.csie.ntu.edu.tw/~b92035/cnl/hw1/Iptables.gif
归档时间: |
|
查看次数: |
2441 次 |
最近记录: |