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