自己搭建服务器
如何选择服务商
Linode是一个总部建立于美国新泽西州加洛伟的虚拟专用服务器(VPS)提供商。它的名字是由英文中Linux中的Li和node(即“节点”一词)构成的混成词。Linode VPS 在业界有着较高的信誉评价,在国外和国内用户中的口碑不错,价格适中。Linode 提供很多了原生的系统。成立于2003年的Linode历经这么多年,依然是vps界的常青树。
优势:最强的硬件配置,最棒的技术支援以及售后服务,稳定性强的一匹,同时各种免费付费服务一应俱全。对于Linode的优势我无需多言,这么多年,全球用户的一致信赖品牌。我16年把我的数据就从Vultr又搬迁回了Linode,玩了这么多年的vps,最后还是回归了Linode。对于个人站长而言,Linode绝对是不二选择。
劣势:和vultr一样,日本Tokyo2机房晚高峰ping值也高,毕竟他俩都是走ntt,要崩溃一起崩溃。另外一大劣势就是你要有一个双币信用卡来验证。虽然Linode已经支持paypal付款了,但是没有信用卡验证依然不能使用他家服务。
vultr是一家成立于2014年的VPS提供商。根据域名所有者资料,母公司是2005年成立于新泽西州的ClanServers Hosting LLC公司,他们家的游戏服务器托管在全球6个国家的12个数据中心,选择非常多。vultr家的服务器采用的E3的CPU,清一色的Intel的SSD硬盘,vultr的计费按照使用计费(自行选择配置、可以按月或按小时计费),用多少算多少,可以随时取消,vultr的服务器托管在全球14个数据中心,即时开通使用。堪称是拥有最多机房的vps服务商。
优势:今年开始支持支付宝了,对小白而言是个好消息。其次他家日本机房5刀每月,到国内速度算是说得过去的。当然比起IDCF之类的速度肯定不行,但是胜在你能买到呀!而且使用vultr的人不算少,相关教程一搜就能搜到。至于硬件配置,api等等,也都是业界顶尖的,仅次于Linode
劣势:Vultr成也日本,败也日本。当年日本机房开通电信联通双直连的时候,我就预言要被国人活活艹死。仅仅半年,东京机房的晚高峰ping值就从原先的六七十飙升到一百三十左右了。然而即使这样,大家也没多少选择,提供日本机房的大商家一共就那么几家,你选啥?
CentOS中搭建自己的ss服务器
准备工作
准备一台可以访问国外网站的VPS主机
在自己搭建ss服务器之前,首先要求你自己有一台可以访问国外网站的服务器,典型的是去(比如Linode、Vultr、DigitalOcean等)主机提供商购买一个VPS主机,这样可以远程通过SSH工具登录主机,然后再去安装ss服务。
比如我此处就是用自己之前从Linode买的VPS,接着在上面折腾,安装ss服务,变成提供了ss服务器。
最好用Python 2的版本
为了兼容性,此处最好Python是2.x的版本,比如此处的是2.7.5:
[root@crifan ~]# python --version
Python 2.7.5
Copy
Python包管理工具:pip
如果没有python的包管理工具,比如pip
,则最好先去安装:
yum -y install python-setuptools && easy_install pip && pip install --upgrade pip
Copy
方式1: 用Python的shadowsocks实现ss服务
用pip去安装shadowsocks
pip install shadowsocks
Copy
配置shadowsocks
去添加配置文件/etc/shadowsocks.json
。
内容可以参考下面的shadowsocks-libev
的配置文件/etc/shadowsocks-libev/config.json
启用shadowsocks
启动shadowsocks:
ssserver -c /etc/shadowsocks.json -d start
Copy
停止shadowsocks:
ssserver -c /etc/shadowsocks.json -d stop
Copy
方式2: 用shadowsocks-libev实现ss服务
安装shadowsocks-libev
cd /etc/yum.repos.d/
curl -O https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
yum install -y shadowsocks-libev
Copy
配置shadowsocks-libev
新建配置文件(如果不存在的话):
/etc/shadowsocks-libev/config.json
然后配置对应的参数:
server
:当前自己的服务器的地址比如:
0.0.0.0
server_port
:ss服务的端口一般要大于1024,小于65536
可以随意取值,只要不和其他端口冲突即可
比如:
21500
password
:ss客户端使用ss时要使用的密码比如一个复杂但安全的,包含数字和大小写字母的密码:
Ci20s5a6y96F
method
:加密方式以前常见的方式是:
aes-256-cfb
最新更加复杂但更安全的是:
chacha20-ietf-poly1305
但是注意需要ss客户端要支持该加密方式才能正常使用ss服务
timeout
:超时时间,单位:秒比如:
300
mode
:ss服务的模式比如:
tcp_and_udp
,即支持tcp也支持udp
举例,比如我此处的设置是:
{
"server": "0.0.0.0",
"server_port": 21500,
"password": "Ci20s5a6y96F",
"method": "aes-256-cfb",
"timeout": 300,
"mode": "tcp_and_udp"
}
Copy
启动shadowsocks-libev
启动:
systemctl restart shadowsocks-libev
想要以后每次重启(Linux的CentOS)服务器时都可以自动启动此ss服务,则可以去:
设置开机启动:
systemctl enable shadowsocks-libev
其他相关命令:
查看状态:
systemctl status shadowsocks-libev
查看日志:
journalctl -u shadowsocks-libev
重启:
systemctl restart shadowsocks-libev
如何确认ss是否正在正常运行
有多种手段查看ss是否正常运行:
systemctl status shadowsocks-libev
比如用 systemctl status shadowsocks-libev
去查看状态是否正常:
[root@crifan yum.repos.d]# systemctl status shadowsocks-libev
[0m shadowsocks-libev.service – Shadowsocks-libev Default Server Service
Loaded: loaded (/usr/lib/systemd/system/shadowsocks-libev.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2017-10-23 20:32:02 CST; 25s ago
Docs: man:shadowsocks-libev(8)
Main PID: 20915 (ss-server)
CGroup: /system.slice/shadowsocks-libev.service
20915 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
Oct 23 20:32:02 crifan.com systemd[1]: Started Shadowsocks-libev Default Server Service.
Oct 23 20:32:02 crifan.com systemd[1]: Starting Shadowsocks-libev Default Server Service…
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: UDP relay enabled
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: initializing ciphers… aes-256-cfb
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: tcp server listening at 0.0.0.0:21500
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: udp server listening at 0.0.0.0:21500
Copy
journalctl -u shadowsocks-libev
可以查看对应的log输出是否正常,比如:
[root@crifan yum.repos.d]# journalctl -u shadowsocks-libev
— Logs begin at Thu 2017-10-12 03:56:54 CST, end at Mon 2017-10-23 20:39:17 CST. —
Oct 23 20:32:02 crifan.com systemd[1]: Started Shadowsocks-libev Default Server Service.
Oct 23 20:32:02 crifan.com systemd[1]: Starting Shadowsocks-libev Default Server Service…
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: UDP relay enabled
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: initializing ciphers… aes-256-cfb
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: tcp server listening at 0.0.0.0:21500
Oct 23 20:32:02 crifan.com ss-server[20915]: 2017-10-23 20:32:02 INFO: udp server listening at 0.0.0.0:21500
Copy
netstat -autn
通过命令:netstat -autn
或:netstat -lnp
,去查看ss的端口是否正常:
[root@crifan yum.repos.d]# netstat -autn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21500 0.0.0.0:* LISTEN
...
tcp 0 0 45.79.205.194:443 222.188.39.139:52004 ESTABLISHED
...
tcp 0 1 45.79.205.194:80 61.147.173.53:45254 LAST_ACK
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:21500 0.0.0.0:*
Copy
其中的21500
就是上面设置的ss的端口,对应着tcp
和udp
的服务,表示都在正常运行。
ps ax |grep ss-server
也可以用ps ax |grep ss-server
去看看当前已经通过ss-server启用了哪些ss的服务
用shadowsocks-libev实现多账号/多用户
上述创建的ss服务,只有一个(账号)密码,只能供一个人用,或者说,如果多个人使用,则使用的是同一个(账号)密码,显得很不方便和不安全。
如果想要多个用户每人有不同的账号(密码),则可以:用shadowsocks-libev实现多账号/多用户
新建另外一个配置文件,比如:
/etc/shadowsocks-libev/config2.json
内容和之前一致,只是端口号server_port
和密码password
改了一下即可:
{
"server": "0.0.0.0",
"server_port": 21501,
"password": "passowrd2",
"method": "aes-256-cfb",
"timeout": 300,
"mode": "tcp_and_udp"
}
Copy
注意: 端口号不要和系统中其他服务的端口号冲突了。
另外再去用:
setsid ss-server -c /etc/shadowsocks-libev/config2.json -u
Copy
启用新端口对应的ss服务。
说明+坑+注意事项
关于更多的折腾的细节可以参考:【已解决】Linode的CentOS 7中搭建shadowsocks – 在路上
此处把一些常见的坑/注意事项/说明解释,整理如下:
Shadowsocks官网
官网也有介绍如何安装ss服务端
其实Shadowsocks的官网中也有管理server端的介绍:Shadowsocks - Servers,也可以参考官网去安装服务端的ss。
官网也有介绍如何ss的配置的
官网也有关于ss的配置信息的介绍的,包括:
基本的配置信息的介绍:Shadowsocks - Quick Guide
其中包含关于二维码的规则的介绍
更加高级的配置:Shadowsocks - Advanced
建议设置一个复杂但安全的密码
为了使得自己的ss的相对更加安全,建议设置一个相对比较复杂的密码
比如可以使用第三方密码生成工具:Generate Password
去生成一个比较复杂的密码,就类似于:ci20s5a6y96f
FirewallD is not running
在启用ss服务期间,在检查是否可能是由于防火墙的问题而导致ss服务没有正常运行时,可能会遇到:
FirewallD is not running
-> 其表示:防火墙并没有运行
-> 对应着(和我此处类似的Linode的)CentOS中的防火墙,默认是关闭的
-> 所以不是防火墙的问题。
其他问题
错误:软件包:shadowsocks-libev-3.2.0-2.el7.x86_64 (librehat-shadowsocks) 需要:libsodium >= 1.0.4
错误:软件包:shadowsocks-libev-3.2.0-2.el7.x86_64 (librehat-shadowsocks) 需要:mbedtls
解决:
安装libsodium的方法:
yum install epel-release -y
yum install libsodium -y
安装mbedtls-devel的方法:
yum install epel-release
yum update
yum install mbedtls-devel
看起来服务器一切正常,客户端也已连接,但实际上就是打不开谷歌的问题:
实际是服务器centos7 情况下,没有自动开放端口,开放端口配置详见:
https://www.cnblogs.com/moxiaoan/p/5683743.html
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
开放udp端口也一样如上配置。
新版ss服务器已不需要配置"mode": "tcp_and_udp"
关于开启多个配置的可以参考(没试过)
Last updated
Was this helpful?