傻瓜式搭梯子教程
服务端
GCP购买及设置
GCP(Google Cloud Platform)购买及设置见申请谷歌云教程,可免费使用一年,不加赘述。
BBR安装
1.准备工作
1 | $ sudo apt-get update |
2.安装YankeeBBR,输入:
1 | $ wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/YankeeBBR/master/bbr.sh https://raw.githubusercontent.com/FunctionClub/YankeeBBR/master/bbr.sh && bash bbr.sh install |
如果中途跳出一个YES/NO选择框,选择NO。
最后选择Y重启。
3.启动BBR
1 | $ bash bbr.sh start |
将提示启动成功。
安装Shadowsocks
Python3
1 | $ sudo apt-get update |
Shadowsocks:
1 | $ sudo pip3 install shadowsocks |
找一个目录(这里目录假定为 ~/Shadowsocks/
),,添加配置文件:
1 | $ vim ~/Shadowsocks/config.json |
配置以下内容:
1 | { |
创建完毕后,赋予文件权限:
1 | $ sudo chmod 755 ~/Shadowsocks/config.json |
开启ssserver服务
可以不使用配置文件,直接通过参数运行 ssserver
,但推荐不使用这种方式。
以下是以使用配置文件为前提的设置:
启动
不进入后台运行,同时打印log至 /home/katherine/ssserverlogy
1 | $ ssserver -c ~/Shadowsocks/config.json > /home/katherine/ssserverlogy & |
后台运行
第一种方法:使用 ssserver
的 -d
参数【推荐】
1 | $ ssserver -c ~/Shdowsocks/config.json -d start |
第二种方法; 使用 nohup
命令
1 | $ nohup ssserver -c ~/Shadowsocks/config.json > /home/katherine/ssserverlog & |
- nohup + [command] + & 是为了让其在后台运行
- Ctrl + C 是终止程序
- Ctrl + Z 是挂起到后台
关闭ssserver
1 | $ ssserver -d stop |
设置开机启动
方法一
编辑 /etc/rc.local
文件
1 | $ sudo vi /etc/rc.local |
在 exit 0
这一行的上边加入如下
1 | /usr/local/bin/ssserver –c ~/Shadowsocks/config.json |
方法二
1 | $ sudo vim /etc/systemd/system/shadowsocks.service |
输入以下内容:
1 | [Unit] |
重载服务:
1 | $ systemctl enable nginx.service |
启动服务
1 | $ sudo systemctl start nginx.service |
查看日志
1 | $ sudo journalctl -f -u nginx.service |
重启
1 | $ sudo systemctl restart nginx.service |
重载
1 | $ sudo systemctl reload nginx.service |
停止
1 | $ sudo systemctl stop nginx.service |
关闭正在监听的端口
有时候用 nohup
启动后,想重启脚本,那么就会出现监听端口冲突的问题。
1 | $ ps -ef|grep server |
NOTES
1.如果你没关掉当前终端,你可以这么查看后台运行的程序:
1 | $ jobs -l |
2.jobs命令只看当前终端生效的,关闭终端后,在另一个终端>jobs已经无法看到后台跑得程序了,此时利用ps(进程查看命令):
1 | $ pgrep [command_name] # 模糊匹配,找到匹配该特征串的进程ID |
综合的写法:
1 | $ pgrep sslocal | xargs ps -u --pid |
- 因为查找出来的进程ID需要被作为参数传递给ps命令,故使用>xargs命令,通过管道符号连接
- 显示进程详细信息,需要加上-u参数。
3.将后台的程序提到前端(%后面的数字代表了要提到前台的任务):
1 | $ %2 |
客户端
Client 端是运行在需要科学上网的机器上的, 主要分三步:
- 开启
sslocal
服务 - 开启浏览器(Firefox或Chrome)代理
- 浏览器科学上网
安装Shadowsocks
同服务器部分,不赘述。
启动sslocal服务
和 ssserver
一样,sslocal
也可以直接通过指定参数运行,但不推荐。
以下操作以使用配置文件为基础:
启动
找一个目录(这里目录假定为 ~/Shadowsocks/
),配置config.json配置文件:
1 | $ vim ~/Shadowsocks/config.json |
修改为如下内容:
1 | { |
然后输入以下命令,运行ss服务:
1 | $ sslocal -c ~/Shadowsocks/config.json |
后台运行
1 | $ nohup sslocal -c ~/Shadowsocks/config.json & |
浏览器
客户端电脑开启 sslocal
服务后,浏览器还并不能科学上网。
Shadowsocks默认是用Socks5协议的, 浏览器里设置上 SOCKS5 代理:
- Proxy Type选择SOCKS5
- IP Address: 127.0.0.1
- Port: 1080(要与前面设置的端口一致)
Chrome
因为无法翻墙,所以没法访问chrome store,无法下载代理插件。
Chrome推荐使用SwitchyOmega来进行代理,链接是github地址,可通过到release页面下载.crx
后缀的插件,来手动安装Chrome插件。
FireFox
点击Add-Ons选项,进入插件中心去下载代理插件,推荐FoxyProxy
。
测试
客户端浏览器开启代理后,访问ip138.com
,若显示的ip是你的服务器ip,则配置成功。
proxychains
安装
Shadowsocks默认是用Socks5协议的,对于Terminal的get,wget等走Http协议的地方是无能为力的,所以需要转换成Http代理
1 | $ sudo apt install proxychains |
配置
编辑配置文件
1 | $ sudo vim /etc/proxychains.conf |
在 [ProxyList] 下面(也就是末尾)加入代理类型,代理地址和端口,注释掉原来的代理并添加:
1 | socks5 127.0.0.1 1080 |
如果所在的网络很复杂,可能需要在配置文件中启用dynamic_chain - 按照列表中出现的代理服务器的先后顺序组成一条链,如果有代理服务器失效,则自动将其排除,但至少要有一个是有效的然后在 [ProxyList] 下添加多个代理
默认:strict_chain - 按照后面列表中出现的代理服务器的先后顺序组成一条链,要求所有的代理服务器都是有效的
测试
1 | $ proxychains curl google.com |
注意:
- proxychains支持的是socks,http, https协议,它们以tcp或者udp协议为基础。
- ping命令用的是 ICMP 协议, proxychains 不支持。
- 本文链接:http://katherineleeyq.cn/2018/09/19/傻瓜式搭梯子教程/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!