搭建环境:CentOS7.9,其他版本也可以
条件:准备一个香港或者国外的云服务器
搭建Shadowsocks VPN,安装配置都很简单,客户端支持PC和移动端,下面是安装Shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改。
登录连接服务器终端,开始下面的安装!
1.添加epel源,确保可以正确安装Shadowsocks的各项依赖
yum install epel-release -y
安装完epel后清理配置并重建缓存
yum clean all yum makecache
更新yum
yum update
中途如果询问 Is this ok? 输入y回车。
2.安装shadowsocks
首先安装git并用git下载shadowsocks源码
yum install git -y
git安装完成后,下载shadowsocks源码
git clone https://github.com/shadowsocks/shadowsocks-libev.git
进入刚下载的源码目录
cd shadowsocks-libev
更新子模块
git submodule update --init --recursive
接下来安装shadowsocks的各种依赖 要注意输出的安装信息确保所有依赖正确安装,如各别依赖无法自动安装则需手动安装,一般正确更新了epel源都可以自动安装所有依赖
yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y
依赖全部成功安装后,用源码编译安装shadowsocks
./autogen.sh && ./configure && make
make完成后进行安装
make install
3.用户配置
在任意目录下建立一个配置文件,例如在root目录下建立ss_serverConfig
vi /root/ss_serverConfig
回车后须使用vi命令编辑,这里说明下:(不清楚vi命令去查下)
Command(命令)模式,用于输入命令;
Insert(插入)模式,用于插入文本;
Visual(可视)模式,用于视化的的高亮并选定正文。
这里我们在界面输入命令i,然后回车进行插入文本。
复制粘贴下面的内容,这里建议手动输入:
{ "server": "0.0.0.0", "server_port": 8388, "local_port": 1080, "password": "111111", "timeout": 1000, "method": "chacha20-ietf-poly1305" }
这里server直接填0.0.0.0就行,server_port默认8388可以改,例如这里我改成8188,local_port也可以自己改,比如我改成1000。password密码自己可以改一下。method 加密方式,建议优先选chacha20-ietf-poly1305,若客户端不支持,可选aes-256-cfb。
输入完成后在界面下用键盘按下ESC退出输入,接着输入命令:wq保存并退出编辑。
查到后补充:
:w 保存;
:w filename 另存为filename;
:wq! 保存退出;
:wq! filename 注:以filename为文件名保存后退出;
:q! 不保存退出;:x 应该是保存并退出 ,功能和:wq!相同
配置完保存好之后运行命令
ss-server -c /root/ss_serverConfig
如下图所示,表示成功运行。
这样运行之后如果我们退出连接服务就中断了。所以我们可以使用nohup使程序与登陆账户无关,不再接收账户退出时的退出信号。这样我们登出服务器后服务仍然继续运行着。
nohup ss-server -c /root/ss_serverConfig &
如果是多用户,那么运行
nohup ss-manager -c /root/ss_managerConfig &
如果运行完nohup命令看到 nohup: ignoring input and appending output to ‘nohup.out’这个消息,没关系不用管,服务在运行了。在键盘按下Ctrl+C可结束会话。
4.多用户配置(可选)
如果你要设置几个帐号登陆,可以创建多个配置文件。
多用户配置文件与单用户不同,我们还是在root下创建一个ss_managerConfig。
vi /root/ss_managerConfig
然后复制下面的配置内容并保存。这里请把#后面的注释删掉再使用,注释只是为了提示你要怎么配置。
多用户配置时,应用ss-manager而不是ss-server。
同样的,要使用上面讲的vi命令。
{ "server": "111.111.111.111", # 你vps的ip地址 "local_port": 1080, # 本地端口,自行设定 "timeout": 600, # 超时毫秒数 "method": "chacha20-ietf-poly1305", # 加密方式,建议优先选chacha20-ietf-poly1305,若客户端不支持,可选aes-256-cfb "port_password": { "8388": "barfoo1", # 端口号与密码 "8389": "barfoo2" } }
接着运行下面的命令启动
ss-manager -c /root/ss_managerConfig
5.设置Shadowsocks开机自启动(可选)
我们已经可以使shadowsocks服务良好地运行了,但是每次服务器重启了的话要重新运行一下shadowsocks。我们就可以使用centos7的systemctl将程序注册为一个随着开机自动启动的服务。
注意:该方法基于CentOS7,不适用CentOS6。
centos7设置自启动时,在/usr/lib/systemd/system下新建一个.service文件,例如vpn.service。
vi /usr/lib/systemd/system/vpn.service
将配置内容复制进去并保存,#后面的注释去掉
[Unit] Description=shadowsocks manager # 服务的描述 After=network.target # 该服务跟在哪个服务后启动 [Service] Type=forking # 启动时的进程行为,forking是以fork形式从父进程创建子进程,子进程创建后父进程退出 ExecStart=/root/startVPN # 启动服务时执行的命令 PrivateTmp=true # 使用私有临时文件目录 [Install] WantedBy=multi-user.target # 附挂在multi-user.target下
因为ExecStart指令串仅接受“指令 参数 参数…”的格式,不能接受<,>,»,|,&等特殊字符,很多的 bash 语法也不支持。 所以,要使用这些特殊的字符时,直接写入到指令脚本里面。
将以上命令写在一个bash可执行文件中,例如startVPN。
vim /root/startVPN
复制一下脚本内容,这里第一行#!/bin/bash必须保留,否则后面执行会报错。
#!/bin/bash cd shadowsocks-libev nohup ss-server -c /root/ss_serverConfig &
保存文件后增加执行权限
chmod 754 startVPN
所有配置文件与脚本都设置完毕,使用systemctl开启服务。 更改.service文件后,都要重载守护进程更新systemctl
systemctl daemon-reload
启动服务
cd /usr/lib/systemd/system systemctl start vpn.service
查看服务状态,若为绿色active(running)则说明服务成功启动
systemctl status vpn.service
若为红色说明服务启动失败,一般是端口号被占用的问题。
查询端口号是否被占用,例如我的端口号为8188
sudo lsof -i tcp:8188
查到端口被占用,终结进程,我的PID是17042
sudo kill -9 17042
然后重复上面的启动服务命令,查看服务状态。
设置服务开机自启动
systemctl enable vpn.service
可以使用 systemctl restart vpn.service 重启服务,使用 systemctl stop vpn.service 停止服务
6.安装shadowsocks客户端
Windows
https://github.com/shadowsocks/shadowsocks-windows/releases
安卓版
https://github.com/shadowsocks/shadowsocks-android/releases
其他版本到shadowsocks的github主页上自己找下
https://github.com/shadowsocks
下面以Windows版本为例,下载后直接解压缩运行即可。
然后输入一下VPN地址和密码(服务器地址和你设的密码)
配置好后,可以看到任务栏有个小三角标,然后点击图标右键打开系统代理即可,如果不要代理就选禁用。我这里选的全局模式,其他模式大家自己摸索了。
参考文章:https://www.leavescn.com/Articles/Content/1244
本页作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4374