我已经使用默认端口 22 在我的 DD-WRT 路由器上配置了 SSH 隧道。
我想打开路由器上的另一个端口作为 SSH 的代理端口,比如端口 80,以防防火墙阻止我连接到端口 22。我该怎么做?我认为可能需要配置SSH TCP Forwarding
(我将其设置为“关闭”,因为我仍然无法发现它在打开时会执行任何操作),Port Forward
(我已将其设置为将 TCP 80 转发至 192.168.1.1:22), 和iptables
(我没有修改它们,因为我只对它们有部分了解)。
目前,我可以使用端口 22 访问 SSH 隧道。如果我扫描端口 80,它会显示打开,但我无法通过它建立 SSH 连接。我猜问题出在我的防火墙上。
有人能回答我该如何配置路由器,尽可能使用 GUI,将本地主机上的 80 端口代理到 22 端口吗?
我的配置:DD-WRTv24-sp2,Build 14896
当前 iptables 配置:
# OpenVPN
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT
iptables -I FORWARD 1 --source 192.168.1.0/24 -j ACCEPT
iptables -I FORWARD -i br0 -o tun0 -j ACCEPT
iptables -I FORWARD -i tun0 -o br0 -j ACCEPT
# Force-Filter DNS
iptables -t nat -A PREROUTING -i br0 -p udp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to $(nvram get lan_ipaddr)
答案1
我假设您想打开“Internet”端的端口 80 以转发到“LAN”端服务器的端口 22?
我不确定如何在 DD-WRT 上执行此操作,但我认为您应该分两步进行:
配置 DD-WRT 在端口 80 和 22 上执行“端口转发”到目标服务器
在目标服务器上配置 SSH 以监听端口 22和80.
答案2
在管理 > 命令,在防火墙配置中添加以下行:
iptables -t nat -I PREROUTING -p tcp -d $(nvram get wan_ipaddr) --dport 80 -j DNAT --to $(nvram get lan_ipaddr):22
答案3
ssh -i /tmp/root/.ssh/ssh_host_rsa_key -f -y -K 30 -R 0:localhost:80 tunnel.us.ngrok.com tcp 22