Skip to content

SSH 命令使用HTTP或SOCKS代理

背景

经过家里网络防火墙设定,导致服务器不能直接被访问,虽然达到了安全,出门在外还是会存在一些不便之处。

解决方法

通过使用nc命令,配合ssh的ProxyCommand,便可以实现ssh通过代理访问服务器进行连接。
示例如下:

ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server

nc命令的常用参数:

-X是指定代理协议
4是socks4协议
5是socks5协议
-x是指定代理服务器和端口[代理服务器:端口]
默认socks使用1080
HTTPS使用3128

个人定制情况

通过家里树莓派开方的ssh端口,我的方案是通过SSH -D实现socks5端口共享,由于通过进入树莓派在进入服务器方式一致,但这样能实现http往也访问等操作。
整体穿透如下:外部网络->互联网->家庭树莓派->家庭服务器;

  1. 通过SSH搭建socks代理
    ssh -D 1080 root@home
  2. 登陆服务器
    ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server
发表评论

电子邮件地址不会被公开。 必填项已用*标注