让你的SSH通过HTTP代理或者SOCKS5代理
socks5代理
有时候你的SSH
因为某些原因, 或者你的VPS
的SSH
端口被某些无法阻挡的力量被封禁了, 你使用普通的SSH
方式无法登录你的服务器, 所以这时候我们需要使用一些方式, 让你的SSH
通过代理链接你的服务器, 进而解决这个问题.
直接配置
如何让你的ssh
链接使用socks
代理呢, 我们可以使用nc
命令, 使用ssh
的ProxyCommand
配合nc
可以让ssh
通过你设置的代理访问服务器
$ ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server
其中使用ProxyCommand
命令, 带上具体内容nc -X 5 -x 127.0.0.1:1080 %h %p
, 127.0.0.1:1080
是你的代理实际地址和端口 最后边的root@server
是你需要登录的服务器和用户名
nc
命令的常用参数:
-X
是指定代理协议
- 4是socks4协议
- 5是socks5协议
-x
是指定代理服务器和端口[代理服务器:端口]
- 默认
socks
使用1080 HTTPS
使用3128
alias
使用alias
方式也可以:
打开你的.bashrc
或者.zshrc
配置alias
$ vim ~/.bashrc
alias connserver=ssh -o ProxyCommand="nc -X 5 -x 127.0.0.1:1080 %h %p" root@server
保存退出后输入一下:
$ source ~/.bashrc
下次我们访问服务器的时候直接输入connserver
就行
$ connserver
config方式
我们也可以使用ssh
的config
配置
编辑ssh
的配置文件, 没有这个文件的话, 自己创建一下:
$ vim ~/.ssh/config
然后写入一些命令
Host *
ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p
下次使用ssh的时候就不需要配置代理了
HTTP代理
有时候你没有socks
代理的时候, 我们借助corkscrew
可以让ssh
使用HTTP
代理
由于我这里是macOS
系统, 我就直接用brew
安装corkscrew
:
$ brew install corkscrew
安装完成之后我们打开ssh
的config
文件修改成使用corkscrew
的http
代理方式:
$ vim ~/.ssh/config
写入:
ProxyCommand /usr/local/bin/corkscrew 127.0.0.1 8080 %h %p
/usr/local/bin/corkscrew
是corkscrew
的可执行文件路径, 如果您和我的不一样, 可以修改成正确的地址
127.0.0.1 8080
是你的HTTP
代理端口, 注意中间有空格, 保存退出后这个时候ssh
可以通过你设置的http
代理进行访问你的服务器了.
注意,这种方式生效是全局的, 可能会影响到你的git
使用ssh
的方式clone或者push
全文完题图