如果你要旅行,你想去哪里?

Project V :VMess 协议下配置 websocket 、Caddy 使 V2Ray 隐藏于网站之后

Project V 提供了单一的内核和多种界面操作方式。内核(V2Ray)用于实际的网络交互、路由等针对网络数据的处理,而外围的用户界面程序提供了方便直接的操作流程。
V2Ray 的主要作用是根据用户的配置,对于传入的网络连接进行一定处理,然后发往指定的服务器。它是一个命令行程序,可以接受一个 JSON 格式的配置文件。

接触 Project V 是去年十一月份,折腾过很多次,每次都花费很多时间去调试配置,于是做个简单的记录以备不时之需。

安装 V2Ray

# bash <(curl -L -s https://install.direct/go.sh)

之后可以使用 service v2ray start|stop|status|reload|restart|force-reload 控制 V2Ray 的运行,在此之前先配置 V2Ray 。
编辑 /etc/v2ray/config.json 文件,可参考以下模板:

{
    "log": {
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log",
        "loglevel": "warning"
    },
    "inbound": {
        "port": 10086,
        "protocol": "vmess",
        "settings": {
            "udp": true,
            "clients": [
                {
                    "id": "292a081a-9f3d-2d64-b9e2-7aa50a7fde3e",
                    "level": 1,
                    "alterId": 64
                }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "wsSettings": {
                "path": "/www"
            }
        }
    },
    "outbound": {
        "protocol": "freedom",
        "settings": {}
    },
    "outboundDetour": [
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}

安装 Caddy

# wget -qO- https://getcaddy.com | bash -s personal

配置 Caddy 的 systemd

# curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

重载 systemd

# systemctl daemon-reload

设置 Caddy 开机启动

# systemctl enable caddy.service

配置站点文件

# mkdir /etc/caddy
# mkdir /www
# touch /etc/caddy/Caddyfile

编辑 touch /etc/caddy/Caddyfile ,可参考以下模板:

abc.com {
    tls [email protected]
    gzip
    timeouts none
    root /www
    proxy /www 127.0.0.1:10086 {
        websocket
        header_upstream -Origin
    }
}

最后

启动 V2Ray 、 Caddy

# service v2ray start
# systemctl start caddy.service

当然,可以为 V2Ray 套上支持 WebSocket 传输方式的 cdn,此操作在不同网络坏境下会产生加速、或减速的蜜汁效果。
Project V 更多用法参考:https://www.v2ray.com/

2018/05/16