我目前连接到的isp只有打开端口80,但我需要ssh到我的服务器,它监听我的路由器的端口22。这里有经过80号港口的路吗,然后在那里穿过22个港口?
发布于 2014-01-16 22:59:45
奇怪的是,您的出站只允许端口80,但无论如何。您可以使用iptables将所有连接重定向到端口80到端口22,或者让SSH服务器也监听端口80。
使用iptable:
iptables -t nat -I PREROUTING --src 0/0 --dst YOURSERVERIP -p tcp --dport 80 -j REDIRECT --to-ports 22修改服务器ssh配置:
sed '/\#Port\ 22/Port 80/' /etc/ssh/sshd_config | grep 80如果一切正常,请使用:
sudo sed -i '/\#Port\ 22/Port 80/' /etc/ssh/sshd_config发布于 2016-04-16 01:14:55
首先,我觉得我看错了你的问题。我的理解是,你只允许在80端口的出站流量。这意味着您需要从端口80到服务器端口22进行通信。幸运的是,这是完全有可能的使用背景管和netcat。这是一个过程:
首先,创建你的回收管:
# mknod backpipe p
接下来,制作一个netcat侦听器,它连接你的反管道并将信息发送出你选择的端口(80)到你选择的端口(22):
# nc -l -p 222 0<backpipe | nc -p 80 SERVERIP 22 | tee backpipe最后,只需连接到您的监听端口!
# ssh server_username@127.0.0.1 -p 222
对于好奇的人来说,这是一条地下管线的分解图:
nc -l -p 222 0<backpipe这将设置一个在端口222上监听的netcat侦听器(您可以将它更改为您想要的任何端口,我刚刚选择了222),并将所有数据发送到您的回水管中。
nc -p 80 SERVERIP 22这将将源端口设置为80到SERVERIP端口22。这是OP在他的帖子中想要的连接,但是我们想通过这个传输一个SSH连接,因此需要一个回溯管。
tee backpipe这将您的STDOUT发送到回程,也发送到您的终端。如果您不想看到数据,可以用以下行替换它:
# nc -l -p 222 0<backpipe | nc -p 80 SERVERIP 22 1> backpipehttps://unix.stackexchange.com/questions/109689
复制相似问题