如何让ss和v2ray共存

介绍

在网络代理工具中,ss和v2ray都是比较常用的工具。然而,在同一台服务器上同时运行这两个工具却是一个比较复杂的问题。本文将介绍如何在同一服务器上同时运行ss和v2ray,让用户可以更加灵活地选择使用不同的网络代理工具。

步骤

1. 安装ss和v2ray

在开始之前,我们需要先安装ss和v2ray。这里我们以Ubuntu系统为例,其他系统安装方法类似。

安装ss

  1. 打开终端,输入以下命令安装ss:

    sudo apt-get update
    sudo apt-get install shadowsocks-libev
    
  2. 安装完成后,使用以下命令启动ss:

    ss-local -c /etc/shadowsocks-libev/config.json
    

    其中/etc/shadowsocks-libev/config.json是ss的配置文件路径。

安装v2ray

  1. 打开终端,输入以下命令安装v2ray:

    bash <(curl -L -s https://install.direct/go.sh)
    
  2. 安装完成后,使用以下命令启动v2ray:

    systemctl start v2ray
    

2. 配置ss和v2ray

在安装完成ss和v2ray之后,我们需要对它们进行配置。

配置ss

  1. 打开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"
    }
    
  2. 保存配置文件后,使用以下命令重启ss:

    systemctl restart shadowsocks-libev
    

配置v2ray

  1. 打开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": {}
            }
        ]
    }
    
  2. 保存配置文件后,使用以下命令重启v2ray:

    systemctl restart v2ray
    

3. 配置iptables

在ss和v2ray配置完成后,我们需要对iptables进行配置,以实现ss和v2ray的共存。

  1. 打开终端,输入以下命令:

    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的端口号,需要根据自己的配置进行修改。

  2. 保存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

  1. 停止ss服务:

    systemctl stop shadowsocks-libev
    
  2. 卸载ss:

    sudo apt-get remove shadowsocks-libev
    

卸载v2ray

  1. 停止v2ray服务:

    systemctl stop v2ray
    
  2. 卸载v2ray:

    rm -rf /usr/bin/v2ray
    rm -rf /etc/v2ray
    rm -rf /var/log/v2ray
    

2. 如果我已经有了一个运行中的ss或v2ray服务,如何将另一个服务添加到其中?

如果您已经有一个运行中的ss或v2ray服务,您可以通过修改其配置文件来添加另一个服务。具体来说,您需要修改以下内容:

ss配置文件

  1. 修改/etc/shadowsocks-libev/config.json文件中的server_port为另一个未使用的端口号。

  2. /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的本地端口号。

  3. 保存配置文件后,使用以下命令重启ss服务:

    systemctl restart shadowsocks-libev
    

v2ray配置文件

  1. 修改/etc/v2ray/config.json文件中的port为另一个未使用的端口号。

  2. /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是另一个未使用的端口号。

  3. 保存配置文件后,使用以下命令重启v2ray服务:

    systemctl restart v2ray
    
正文完