服务器(纯终端操作)通过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的)