使用Docker部署V2Ray
前言
之前写过一篇文章,在Ubuntu
上来部署Shadowsocks
来科学上网,随着科学上网的阻碍加大(防火墙加高),Shadowsocks
的特征被识别等情况,速去了解到了新的代理工具,也就是现在要说的V2Ray
开始吧
先说好前提,这里使用的环境是在Docker
上,利用docker compose
来启动创建和启动容器,所以应该是所有能跑Docker
的机器上都能这么做。另外如果这两个东西不了解需要去提前了解。或者你想要找其他的安装方式,可以参考官网的安装文档
其实使用Docker
的话对新手算是引入了更大的复杂度,但是为了不影响主机的情况,使用Docker
来部署和测试v2ray
还是很有必要的
V2Ray
提供了两个V2Ray
的镜像可以选择:- v2ray/official: 包含最新发布的版本,每周跟随新版本更新
- v2ray/dev: 包含由最新的代码编译而成的程序文件,随代码库更新
为了减小问题的可能性,使用official的镜像,地址在这
登录上代理服务器,安装好
docker
和docker-compose
,并且创建好docker-compose.yml
,名字需要一样,或者你使用docker-compose
的时候用-f
命令来指定文件名也可以。文件内容如下:version: '3.1' services: v2ray: image: v2ray/official restart: always ports: - 23333:23333 volumes: - ~/v2ray/config:/etc/v2ray - ~/v2ray/logs:/var/log/v2ray command: v2ray --config=/etc/v2ray/config.json
ports
设置说明了服务器监听的端口是23333
,映射在本地也是23333
,左边是本地端口,右边是容器端口- 然后设置了两个
volumes
,用来把本地的磁盘数据共享到容器里,这样可以直接修本地配置然后重新启动就可以生效,也可以看历史日志。比如配置文件是放在了本地的~/v2ray/config
下,这样在容器里的目录是/etc/v2ray
,所以启动容器指定配置文件地址的时候用的是/etc/v2ray/config.json
,后面我们的配置文件直接放在~/v2ray/config/config.json
下就好了
创建好配置
v2ray
的文件,名字是config.json
,放在~/v2ray/config
下。另外这里推荐两个v2ray
配置生成的网站这个和这个{ "log": { "access": "/var/log/v2ray/access.log", "error": "/var/log/v2ray/error.log", "loglevel": "info" }, "dns": {}, "stats": {}, "inbounds": [ { "port": 23333, "listen": "0.0.0.0", "protocol": "vmess", "settings": { "clients": [ { "id": "id一般是自动生成", "alterId": 64 } ] }, "streamSettings": { "network": "tcp", "security": "none", "tcpSettings": { "type": "none" } }, "tag": "", "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] } } ], "outbounds": [ { "tag": "direct", "protocol": "freedom", "settings": {} }, { "tag": "blocked", "protocol": "blackhole", "settings": {} } ], "routing": { "domainStrategy": "AsIs", "rules": [ { "type": "field", "ip": [ "geoip:private" ], "outboundTag": "blocked" } ] }, "policy": {}, "reverse": {}, "transport": {} }
启动 使用命令
docker-compose up -d
来启动,然后使用docker logs container-id
来查看日志,最后检查端口lsof -i:23333
是否处于监听状态。后面有问题的话可以先看看v2ray
的日志,后续再尝试检查v2ray
的配置,docker-compose
的配置连接 这里使用的本地客户端是
clash for windows
,配置如下:port: 7890 socks-port: 7891 allow-lan: true mode: Rule log-level: silent external-controller: 0.0.0.0:9090 Proxy: - name: mine type: vmess server: 服务器IP port: 23333 uuid: 之前服务器上的uuid alterId: 64 cipher: auto Proxy Group: - name: auto type: url-test proxies: - mine url: http://www.gstatic.com/generate_204 interval: 300 - name: Proxy type: select proxies: - mine - auto Rule: - MATCH,auto
具体的配置内容参考git文档,有一个This is an example configuration file
,展开就能看到示例。或者你也可以在这里找到你自己喜欢的工具
最终的情况是你可以打开谷歌找到你想要的内容(废话)
总结
这次写着写着发现东西越来越多,到后面很多都是单纯的丢一下文档和配置了。发现现在的科学上网难度真是越来越大了,不由得感叹一下。
主要的内容:
- v2ray配置和使用
- clash配置和使用
- docker的安装使用和docker-compose配置