介绍
在网络代理工具中,ss和v2ray都是比较常用的工具。然而,在同一台服务器上同时运行这两个工具却是一个比较复杂的问题。本文将介绍如何在同一服务器上同时运行ss和v2ray,让用户可以更加灵活地选择使用不同的网络代理工具。
步骤
1. 安装ss和v2ray
在开始之前,我们需要先安装ss和v2ray。这里我们以Ubuntu系统为例,其他系统安装方法类似。
安装ss
-
打开终端,输入以下命令安装ss:
sudo apt-get update sudo apt-get install shadowsocks-libev
-
安装完成后,使用以下命令启动ss:
ss-local -c /etc/shadowsocks-libev/config.json
其中
/etc/shadowsocks-libev/config.json
是ss的配置文件路径。
安装v2ray
-
打开终端,输入以下命令安装v2ray:
bash <(curl -L -s https://install.direct/go.sh)
-
安装完成后,使用以下命令启动v2ray:
systemctl start v2ray
2. 配置ss和v2ray
在安装完成ss和v2ray之后,我们需要对它们进行配置。
配置ss
-
打开ss的配置文件
/etc/shadowsocks-libev/config.json
,修改其中的端口号和密码为自己设置的值。{ "server":"0.0.0.0", "server_port":12345, "local_address":"127.0.0.1", "local_port":1080, "password":"your_password", "timeout":300, "method":"aes-256-gcm", "fast_open":false, "nameserver":"8.8.8.8", "mode":"tcp_and_udp" }
-
保存配置文件后,使用以下命令重启ss:
systemctl restart shadowsocks-libev
配置v2ray
-
打开v2ray的配置文件
/etc/v2ray/config.json
,修改其中的端口号和UUID为自己设置的值。{ "inbounds": [ { "port": 10086, "protocol": "vmess", "settings": { "clients": [ { "id": "your_uuid", "alterId": 64 } ] }, "streamSettings": { "network": "tcp", "tcpSettings": { "header": { "type": "none" } } } } ], "outbounds": [ { "protocol": "freedom", "settings": {} } ] }
-
保存配置文件后,使用以下命令重启v2ray:
systemctl restart v2ray
3. 配置iptables
在ss和v2ray配置完成后,我们需要对iptables进行配置,以实现ss和v2ray的共存。
-
打开终端,输入以下命令:
sudo iptables -t nat -N V2RAY sudo iptables -t nat -A V2RAY -d 0.0.0.0/8 -j RETURN sudo iptables -t nat -A V2RAY -d 10.0.0.0/8 -j RETURN sudo iptables -t nat -A V2RAY -d 127.0.0.0/8 -j RETURN sudo iptables -t nat -A V2RAY -d 169.254.0.0/16 -j RETURN sudo iptables -t nat -A V2RAY -d 172.16.0.0/12 -j RETURN sudo iptables -t nat -A V2RAY -d 192.168.0.0/16 -j RETURN sudo iptables -t nat -A V2RAY -d 224.0.0.0/4 -j RETURN sudo iptables -t nat -A V2RAY -d 240.0.0.0/4 -j RETURN sudo iptables -t nat -A V2RAY -p tcp -j REDIRECT --to-ports 12345 sudo iptables -t nat -A PREROUTING -p tcp -j V2RAY
其中,
12345
是ss的端口号,需要根据自己的配置进行修改。 -
保存iptables配置后,使用以下命令使其生效:
sudo iptables-save > /etc/iptables.up.rules
4. 测试
在完成以上步骤后,我们可以使用以下命令测试ss和v2ray是否可以同时运行:
curl --socks5-hostname 127.0.0.1:1080 http://httpbin.org/ip
如果返回的IP地址与本机IP地址不同,说明ss和v2ray已经成功共存。
常见问题解答
1. 如何卸载ss和v2ray?
卸载ss
-
停止ss服务:
systemctl stop shadowsocks-libev
-
卸载ss:
sudo apt-get remove shadowsocks-libev
卸载v2ray
-
停止v2ray服务:
systemctl stop v2ray
-
卸载v2ray:
rm -rf /usr/bin/v2ray rm -rf /etc/v2ray rm -rf /var/log/v2ray
2. 如果我已经有了一个运行中的ss或v2ray服务,如何将另一个服务添加到其中?
如果您已经有一个运行中的ss或v2ray服务,您可以通过修改其配置文件来添加另一个服务。具体来说,您需要修改以下内容:
ss配置文件
-
修改
/etc/shadowsocks-libev/config.json
文件中的server_port
为另一个未使用的端口号。 -
在
/etc/shadowsocks-libev/config.json
文件中添加以下内容:{ "server":"0.0.0.0", "server_port":12346, "local_address":"127.0.0.1", "local_port":1081, "password":"your_password", "timeout":300, "method":"aes-256-gcm", "fast_open":false, "nameserver":"8.8.8.8", "mode":"tcp_and_udp" }
其中,
12346
是另一个未使用的端口号,1081
是ss的本地端口号。 -
保存配置文件后,使用以下命令重启ss服务:
systemctl restart shadowsocks-libev
v2ray配置文件
-
修改
/etc/v2ray/config.json
文件中的port
为另一个未使用的端口号。 -
在
/etc/v2ray/config.json
文件中添加以下内容:{ "inbounds": [ { "port": 10087, "protocol": "vmess", "settings": { "clients": [ { "id": "your_uuid", "alterId": 64 } ] }, "streamSettings": { "network": "tcp", "tcpSettings": { "header": { "type": "none" } } } } ], "outbounds": [ { "protocol": "freedom", "settings": {} } ] }
其中,
10087
是另一个未使用的端口号。 -
保存配置文件后,使用以下命令重启v2ray服务:
systemctl restart v2ray