• 查看主题

  • 查看主题说明文字
有价值的内容收集
#149 adm1n
周一 2月 03, 2020 8:15 pm
这几天国际联网线路出现大范围的丢包或干扰,使用 v2 + ws + tls 貌似可以应对这种情况。

1.安装 V2Ray
先使用官方脚本安装,以后升级只需重复执行此命令。
代码: 全选bash <(curl -L -s https://install.direct/go.sh)
新安装完会提示两行,一个端口,一个 uuid,记不记都可以。

官方脚本默认支持 vmess,下一步需要编辑修改 v2 的服务端配置,让支持 ws 和 tls,post 和 id 改成上面的,也可以自己定义,不建议直接搬运下面的,id 相当于密码,还得用你自己的,下面 path 是目录,这里不设。

代码: 全选vi /etc/v2ray/config.json
代码: 全选{ "inbounds": [ { "port": 12345, "listen":"127.0.0.1", "protocol": "vmess", "settings": { "clients": [ { "id": "6768f908-d39f-424f-b3e7-c1b6b10fdf72", "alterId": 64 } ] }, "streamSettings": { "network": "ws", "wsSettings": { "path": "/" } } } ], "outbounds": [ { "protocol": "freedom", "settings": {} } ] }
改过配置,就要重启一下 v2
代码: 全选service v2ray restart
最好也顺手查看下状态,有没有报错

代码: 全选service v2ray status
2.安装caddy
用 caddy 申请证书和反代。这里只勾选 hook.service,hook.service 是 caddy 的自启服务,开机实现自启,你需要其它插件就自己另外加,caddy 是 Go 语言的,以后升级、或者另外加插件,也是一样再一次运行命令即可,会自动替换。

如果服务器之前安装过 nginx ,那么需要将其关闭或卸载,因为 nginx 会占用 80 和 443 端口,和 caddy 产生端口冲突。

代码: 全选curl https://getcaddy.com | bash -s personal hook.service
然后运行:让自启生效。邮箱换你的,Caddyfile 是 caddy 的默认配置文档,本人习惯和 caddy 同一目录 /usr/local/bin,你要调整就要和下面一并调整

代码: 全选caddy -service install -agree -email admin@exsk.com -conf /usr/local/bin/Caddyfile
代码: 全选cd /usr/local/bin
进入 caddy 安装目录,然后 vi Caddyfile 写配置支持 tls
代码: 全选exsk.com{ tls admin@exsk.com proxy / 127.0.0.1:12345 { websocket header_upstream -Origin } }
端口要与上面统一,域名用你自己的,二级域名都可以,先做好解析。注意这里是不套 cloudflare 的,你不要开了 cloudflare 的云。

仍然在 /usr/local/bin 当前目录, ./caddy 初次运行一次,会显示申请证书,没报错就是成功了。

需要查看 caddy 运行状态的命令,其它重启、启动就不用说
代码: 全选caddy -service status
对应的重启、启动、停止就是 caddy -service restart | start | stop

3.客户端设置
地址:就是你的域名,端口是 443,ID 是你上面那一串,额外 ID 是 0,传输协议是 ws,其它默认,最下面底层传输安全记得把 tls 选上。完事。
图片
备用图片:
图片

解释说明补充:

path就是path的意思,路径

你要设,就记得把 caddy 配置的也改一下。 proxy /path 127.0.0.1:端口

path 只是模拟访问网站的 http://xxxxx.com/blog 的意思,没有其它功能。

-----------------------
鉴于你想太多,又强行乱解释,且又被人莫名其妙顶了上去,这样绝对会造成误解,原来并不想理,补充回复的。

加目录,是不会有什么功能加成,更别乱想什么分流,并且即便你要加目录,也请使用顺其自然的目录名,比如 /blog目录, /image 目录等等,别是目录名自带关键字的。

这等于你是打算直接使用 hostloc.xyz 来做博客,还是用 blog.hostloc.xyz 做博客,还是 hostloc.xyz/blog 做博客是一样的事情。没有什么功能加成

无论是选择哪种,直接的全新根域名(hostloc.xyz),二级域名(blog.hostloc.xyz),下级目录(hostloc.xyz/blog ),出来的效果都是一样的,打开这个伪装的网站都是提示 Bad request

另外特别说明:
这教程需要在全新小鸡上安装,按着步骤顺序操作一定能成功,这专门在DO开了个小时鸡测试过的。
看了下回复,都是没有看清楚步骤,一定要进入 /usr/local/bin 目录后再去运行 ./caddy
拜托, ./ 这样指定格式,怎么也应该懂是啥情况。
请使用正常域名,请确定域名已经解析正确,ping一下先,不然证书肯定是申请不下来

你已经在用nginx看下面,两个web server 会有冲突,
用nginx当然也可以,改下配置就可以,但nginx不能快速直接申请证书。之所以用caddy就为了简单容易。

------
已经有了域名证书,又是用nginx的话,
第一步不变,第二步新建一个nginx配置为这样 (# 内容修改成你自己的)
代码: 全选server { listen 443 ssl; ssl on; ssl_certificate /etc/nginx/ssl/domain.crt; # 证书 ssl_certificate_key /etc/nginx/ssl/domain.key; # 证书 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; server_name hostloc.xyz; # 域名 location / { # 目录 proxy_redirect off; proxy_pass http://127.0.0.1:12345; # 端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; # Show real IP in v2ray access.log proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

From: v2-ws-tls教程就三步