动手准备
- 首先淘宝一个海外的服务器,图便宜就买了香港低配云主机一台。
- 虽然windows的操作比较简单,但是为了难为自己还是选了个CentOS。
- 然而,刚到手的系统连python的pip都没有,并且centos没有apt的包管理。
- 了解到这个操作系统是用yum命令来更新软件包的,语法和apt的差不多。
正常步骤
登录
ssh root@103.228.131.75
安装python-setuptools
$ wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-12.0.3.tar.gz#md5=f07e4b0f4c1c9368fcd980d888b29a65
$ tar -zxvf setuptools-12.0.3.tar.gz
$ cd setuptools-12.0.3
$ python setup.py install
安装python-pip
$ wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate
$tar -xzvf pip-1.5.4.tar.gz
$cd pip-1.5.4
$python setup.py install
安装shadowsocks
$pip install shadowsocks
新建config.json配置文件
$vi config.json
{
"server":"0.0.0.0",
"server_port":8388,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"123456",
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false
}
开启shadowsocks服务端
$ ssserver -c config.json
遇到问题
当然事情总不是那么一帆风顺,我特么遇到了一堆问题
1.ssserver能启动,但特么就是连不上
- 想到了防火墙的问题,可以添加规则,或者直接把防火墙关掉
$ service iptables stop
2.ssserver 报错socket.error: [Errno 98] Address already in use
- 好像是因为请求过多,百度到了解决方案 http://blog.csdn.net/chenyulancn/article/details/8181238
3.mac上的shadowsocks客户端开启了全局代理,并且网卡也设置了代理,然而chrome的请求还是不可达
- ssserver已经收到了一些请求,不过并不是本地浏览器产生的,猜测是浏览器代理问题,设置浏览器代理 socks5://127.0.0.1:1080
4.当服务器上的ssh回话退出后,ssserver也结束运行
-
ssserver的父进程为ssh的shell,当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程
-
解决方案:
$ nohup command &
可以不挂断运行命令,忽略HUP信号
$ vi proxy.sh
#!/bin/sh
ssserver -c config.json
$ nohup ./proxy.sh &
参考
在Windows下搭建Shadowsocks服务器
https://soha.moe/post/build-shadowsocks-server-on-windows.html
将CentOS的yum源更换为国内的阿里源
http://www.centoscn.com/CentOS/config/2015/0416/5189.html
python下setuptools安装
http://blog.chinaunix.net/uid-26000296-id-4769414.html
pip安装使用详解
http://www.ttlsa.com/python/how-to-install-and-use-pip-ttlsa
shadowsocks客户端配置
http://www.jeyzhang.com/how-to-install-and-setup-shadowsocks-client-in-different-os.html
如何实现SSH断开后 进程仍然在后台运行
http://blog.csdn.net/v1v1wang/article/details/6855552
解决socket.error: [Errno 98] Address already in use问题
http://blog.csdn.net/chenyulancn/article/details/8181238