服务器(纯终端操作)连接ss操作指南
-
服务器(纯终端操作)通过ss全局模式连接VPS操作指南
- 注意,本文讲的是如何让一台
没有GUI
的Linux机器终端
用ss客户端连上已经搭好
(现在ss都是一键搭建了)的ss服务器(记为ss服务端)的全局模式
背景
最近买了两个域名在玩自己的服务器,但因为众所周知的原因各种资源包下不下来或者巨慢,国内源也找不到,于是想让服务器的终端连上ss,本来以为是几行指令的事,没想到网上的教程全是坑,这里记录一下完整的操作流程,给大家绕坑用
- 本文步骤非常的详细,所以觉得文字部分太简单、没啥意义的优秀同学直接翻到最下面复制完整的代码就行了
环境(Linux就行,Mac其实也行)
- CentOS7(影响不大,其他系统把yum换成自己的包管理器就行)
- 阿里云(广东ip)
第一步:配置ss
以下所有步骤如果报错,先尝试加sudo后再来一次
或者直接
sudo su
- 先给服务器装上python和pip(如果你没有)
yum install python easy_install pip
- 然后用pip装shadowsocks包
pip install shadowsocks
- 创建一个shadowsocks的配置文件(名字和路径自定,本文统一用
/etc/packageName/config.xxx
,以下各配置文件均如此)
vim /etc/shadowsocks/config.json
- 写入以下的文件内容(复制粘贴)
{ "server": "ss.whyere.com", //你搭ss服务端的服务器的ip或URL地址 "server_port": 9937, //你ss服务端搭建的时候用的端口 "local_address": "127.0.0.1", "local_port": 9938, //这是你ss客户端(本地)使用的端口 "password": "SOME_PASSWORD", "timeout": 600, //超时时间,不能大于1000不然报错 "method": "chacha20", //你ss服务端搭建的时候用的加密协议(有aes-256-cfb、chacha20等) "fast_open": false //就这样别管他 }
- 用以下命令启动ss客户端
# -c 表示指定配置文件,这里使用上面创建的那个配置文件即可 sslocal -c /etc/shadowsocks/config.json -d start
再提醒一遍本文全部命令都没有加sudo, 所以如果报错了先加sudo再试一遍
-
用下面的方法把这个命令加到
~/.bashrc
里(Mac加到~/.bash_profile
里,但是本文是讲服务器的所以后面就不管mac了) -
先打开
~/.bashrc
文件
vim ~/.bashrc
- 在最后一行后面加入以下内容,建立名称映射:
alias ssstart='sslocal -c /etc/shadowsocks/config.json -d start' alias ssstop='sslocal -c /etc/shadowsocks/config.json -d stop'
- 以后
sslocal
那一段命令就用上面的两个重命名命令代替了
搭建polipo
- 如果你的包管理器能一键安装polipo,直接安装
apt-get install polipo
-
然而yum等并不能一键安装,于是就有了下面的步骤:
-
首先,如果你没有git:
yum install git
- 这是几个依赖:
yum install -y texi2html texinfo
- 然后把polipo项目clone下来
git clone https://github.com/jech/polipo.git
- 转到刚弄下来的文件夹
cd polipo
- 安装polipo
# 如果你没装gcc和g++导致报错“make cc命令未找到”就执行这两行 make install gcc make install gcc-c++ # make all su -c 'make install'
- 建立polipo配置文件并打开
touch /var/log/polipo.log mkdir /etc/polipo vim /etc/polipo/config
- 加入以下内容
# This file only needs to list configuration variables that deviate # from the default values. See /usr/share/doc/polipo/examples/config.sample # and "polipo -v" for variables you can tweak and further information. logSyslog = true # 9938是你ss客户端(本地)使用的端口,和前文相同数字的端口保持一致即可 socksParentProxy = "127.0.0.1:9938" # socksProxyType = socks5 logFile = /var/log/polipo.log logLevel = 4 proxyAddress = "0.0.0.0" # 58888是你本地代理用的端口,和后文相同数字的端口保持一致即可 proxyPort = 58888 # chunkHighMark = 50331648 objectHighMark = 16384 serverMaxSlots = 64 serverSlots = 16 serverSlots1 = 32
- 创建启动脚本
vim ~/.bashrc
- 写入以下内容
# 这两行是在上文已经要求加了的 alias ssstart='sslocal -c /etc/shadowsocks/config.json -d start' alias ssstop='sslocal -c /etc/shadowsocks/config.json -d stop' # alias ppstart='sudo polipo -c /etc/polipo/config' alias ppstop='sudo killall polipo' alias vpson='ssstart ppstart export http_proxy=http://127.0.0.1:58888 export https_proxy=https://127.0.0.1:58888' # 两个export是设置代理地址的环境变量 alias vpsoff='ppstop ssstop unset http_proxy unset https_proxy' # 两个unset则是删除代理
- 更新
~/.bashrc
source ~/.bashrc
- 于是,现在使用vpson便可以直接使终端连接到vps了,通过curl测试一下:
vpson curl baidu.com # 应该有回应 curl google.com # 应该有回应 vpsoff curl baidu.com # 应该有回应 curl google.com # 应该无回应(如果你服务器本身是连不上google的)
代码合集:
- 代码块做了分割的地方是需要vim打开文件并编辑的地方
sudo su yum install python easy_install pip pip install shadowsocks vim /etc/shadowsocks/config.json
{ "server": "ss.whyere.com", //你搭ss服务端的服务器的ip或URL地址 "server_port": 9937, //你ss服务端搭建的时候用的端口 "local_address": "127.0.0.1", "local_port": 9938, //这是你ss客户端(本地)使用的端口 "password": "SOME_PASSWORD", "timeout": 600, //超时时间,不能大于1000不然报错 "method": "chacha20", //你ss服务端搭建的时候用的加密协议(有aes-256-cfb、chacha20等) "fast_open": false //就这样别管他 }
sslocal -c /etc/shadowsocks/config.json -d start vim ~/.bashrc
alias ssstart='sslocal -c /etc/shadowsocks/config.json -d start' alias ssstop='sslocal -c /etc/shadowsocks/config.json -d stop'
yum install git yum install -y texi2html texinfo git clone https://github.com/jech/polipo.git cd polipo make install gcc make install gcc-c++ make all su -c 'make install' touch /var/log/polipo.log mkdir /etc/polipo vim /etc/polipo/config
# This file only needs to list configuration variables that deviate # from the default values. See /usr/share/doc/polipo/examples/config.sample # and "polipo -v" for variables you can tweak and further information. logSyslog = true # 9938是你ss客户端(本地)使用的端口,和前文相同数字的端口保持一致即可 socksParentProxy = "127.0.0.1:9938" # socksProxyType = socks5 logFile = /var/log/polipo.log logLevel = 4 proxyAddress = "0.0.0.0" # 58888是你本地代理用的端口,和后文相同数字的端口保持一致即可 proxyPort = 58888 # chunkHighMark = 50331648 objectHighMark = 16384 serverMaxSlots = 64 serverSlots = 16 serverSlots1 = 32
vim ~/.bashrc
alias ppstart='sudo polipo -c /etc/polipo/config' alias ppstop='sudo killall polipo' alias vpson='ssstart ppstart export http_proxy=http://127.0.0.1:58888 export https_proxy=https://127.0.0.1:58888' # 两个export是设置代理地址的环境变量 alias vpsoff='ppstop ssstop unset http_proxy unset https_proxy' # 两个unset则是删除代理
source ~/.bashrc
- 这里是完成后的测试
vpson curl baidu.com # 应该有回应 curl google.com # 应该有回应 vpsoff curl baidu.com # 应该有回应 curl google.com # 应该无回应(如果你服务器本身是连不上google的)
- 注意,本文讲的是如何让一台