我尝试使用以下 bash 脚本将 ssh 流量从一台机器重定向到另一台机器:
IPTABLES="/usr/sbin/iptables"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -F -t nat
$IPTABLES -X -t nat
$IPTABLES -F -t mangle
$IPTABLES -X -t mangle
$IPTABLES --policy INPUT ACCEPT
$IPTABLES --policy FORWARD ACCEPT
$IPTABLES --policy OUTPUT ACCEPT
$IPTABLES -t nat -A POSTROUTING --out-interface ppp0 -j MASQUERADE
$IPTABLES -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to 192.168.2.2
echo 1 > /proc/sys/net/ipv4/ip_forward
但是当我输入
ssh user@localhost
或者
ssh [email protected] # (address of local host)
我收到错误‘连接被拒绝’。
请帮我。
答案1
ssh user@localhost
行不通,至少按照你使用的规则行不通。
该PREROUTING
链对进入机器的数据包起作用,而如果您连接到本地主机,则数据包将在本地生成。
不过,好处是您的配置应该适用于外部连接。您是否从其他地方尝试过?
编辑:这是 netfilter 流程的有用图表:-