1 概述
Socks代理协议,socks代理是一直执行在运输层与应用层之间的代理协议,与HTTP代理不同的是,socks处理的TCP/UDP包,所以,其能代理任意的应用层协议,而不只是HTTP协议。
Socks代理协议有两个,分别是socks4与socks5协议,socks4协议只支持TCP协议,而且不支持加密,socks5协议同时支持TCP/UDP协议,而且支持加密~
2 服务器端
2.1 ss
Shadowsocks是一个创建socks5代理服务器的代理工具,安装非常简单
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
sudo apt-get update
sudo apt install shadowsocks-libev
在ubuntu上几行代码就能安装shadowsocks
sudo nohup ss-server -p 8000 -k password -m aes-256-cfb &
启动shadowsocks,8000是监听端口,password是密码,aes-256-cfb是加密方式。
2.2 ssh
ssh -qTfnN -D 8000 user@host
可以使用ssh作为代理,8000作为监听端口,user作为远程服务名,host作为远程服务器
3 客户端
3.1 Windows
客户端下载利用gui建立一个本地代理服务器,连接socks5服务器的IP和端口,以及建立1080端口作为本地浏览器的http与https代理即可。
Chrome浏览器上使用SwitchySharp搭建1080的代理,就可以随时切换了。
3.2 Linux
apt-get install python-pip
pip install shadowsocks
两行代码安装shadowsocks
sslocal -s serverip -p 8000 -b 127.0.0.1 -l 1080 -k password -m aes-256-cfb -d start
sslocal -s serverip -p 8000 -b 127.0.0.1 -l 1080 -k password -m aes-256-cfb -d stop
两行代码启动或关闭shadowsocks client,8000是远程服务端口,1080是本地服务端口,password是密码,aes-256-cfb是加密方式,1080是本地的socks端口。以上命令就可以将远程的shadowsocks服务,代理到本地的1080端口。
apt-get install tsocks
vim /etc/tsocks.conf
server = 127.0.0.1 # SOCKS 服务器的 IP
server_type = 5 # SOCKS 服务版本
server_port = 1080 #SOCKS 服务使用的端口
然后安装tsocks服务,设置tsocks配置,然后以后执行tsocks + 命令就能运行以走代理的方式运行了。
3.3 Mac
Mac下的shadowsocks客户端还算比较简单的,找一个叫goagentx的东西安装好了。 可惜goagentx将远程的socks映射到本地后,还是socks代理,毕竟很多都不支持socks代理,只支持http代理的。我们希望有一个程序可以将所有的网络都转到socks代理上,就是全局代理技术了,这个时候就要用到proximac
sudo nvram boot-args="debug=0x146 kext-dev-mode=1
brew install libuv
brew install python@2
安装前先设置好依赖的库
curl -fsSL https://raw.githubusercontent.com/proximac-org/proximac-install/master/install.py |sudo python
下载好代码并安装
{
"local_port":8016,
"local_address":"127.0.0.1",
"proximac_port":8558,
"VPN_mode":1,
"proxyapp_name":"ss-local"
}
将以上的配置写入到一个文件config.json中,local_port和local_address就是goagentx代理到本地的socks地址,proximac_port是固定的8558,不能变更。VPN_mode是全局代理的配置,proxyapp_name就是goagentx的代理出口进程名,这是为了避免代理所有进程的网络数据造成死循环的问题。
proximac start -c config.json
然后就是启动proximac了,就这么简单。全局的socks5代理,不需要程序自身的支持,默认就走代理通道。
4 对象存储服务资源中转
有时候有很严格的机制,不允许科学上网,即使换了端口也没用,这个时候你就要曲线救国了。
qshell rput fishwall acme.sh.tar.gz acme.sh.tar.gz
先在梯子下载好资源,然后手动上传到对象服务器
qshell get fishwall acme.sh.tar.gz
然后在目标服务器下载下来,解压就可以了
这个方法几乎一定可行,唯一缺点是只支持下载文件
5 git代理
github代理配置
[http]
proxy=socks5://127.0.0.1:7890
[https]
proxy=socks5://127.0.0.1:7890
配置 ~/.gitconfig文件
Host github.com
Hostname github.com
ProxyCommand nc -v -x 127.0.0.1:7890 %h %p
配置~/.ssh/config文件,Mac
Host github.com *.github.com
User git
Port 22
Hostname %h
ProxyCommand "C:/Program Files/Git/mingw64/bin/connect" -S 127.0.0.1:7890 %h %p
IdentityFile "~\.ssh\id_rsa"
TCPKeepAlive yes
IdentitiesOnly yes
配置~/.ssh/config文件,Windows
- 本文作者: fishedee
- 版权声明: 本博客所有文章均采用 CC BY-NC-SA 3.0 CN 许可协议,转载必须注明出处!