VPN有SS,SSR,v2ray,trojan等方式,这里介绍一下v2ray的搭建方式:
SSR搭建参考我另一篇文章:Centos 8搭建SSR科学上网
v2ray官网:https://www.v2ray.com/
目录
1,安装v2ray
在官网也有详细介绍,可以自己参考。
1.1 下载安装v2ray
根据官方运行下面的指令下载并安装 V2Ray。
bash <(curl -L -s https://install.direct/go.sh)
报错如下:
ERROR: This script has been DISCARDED, please switch to fhs-install-v2ray project.
HOW TO USE: https://github.com/v2fly/fhs-install-v2ray
TO MIGRATE: https://github.com/v2fly/fhs-install-v2ray/wiki/Migrate-from-the-old-script-to-this
原因,这是旧版本命令,旧版本已经禁止使用,需要查看上面TO MIGRATE链接安装新的脚本。
curl -O https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh
在执行以下命令安装:
bash install-release.sh
此脚本会自动安装以下文件:
- /usr/bin/v2ray/v2ray:V2Ray 程序;
- /usr/bin/v2ray/v2ctl:V2Ray 工具;
- /etc/v2ray/config.json:配置文件;
- /usr/bin/v2ray/geoip.dat:IP 数据文件
- /usr/bin/v2ray/geosite.dat:域名数据文件
1.2 获取用户ID
获取随机用户ID,ID是UUID,用Linux自带命令可以随机生成UUID
cat /proc/sys/kernel/random/uuid

1.3 配置v2ray服务器
编辑config.json配置文件,安装完成可以看到文件位置:
vim /usr/local/etc/v2ray/config.json
可以根据官方配置如下:
需要注意的几项:
- port 可以自己设置一个没被其他使用的即可。
- id 自己随机生成从UUID,如我随机的是9af3c6ac-07f4-463b-9a1c-22cfe148733d
- path 路径可自己随机设置一个名称,只需要和nginx配置保持一致。
{
"inbounds": [
{
"port": 9532,
"listen":"127.0.0.1",//只监听 127.0.0.1,避免除本机外的机器探测到开放了 9532 端口
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "9af3c6ac-07f4-463b-9a1c-22cfe148733d",
"alterId": 64
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/kshad"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
保存退出,如果只需要简单使用,不加密的话,现在也可以直接使用,去掉上面的streamSettings模块即可,这个模块是为后续ws+nginx的配置需求。
直接使用,启动v2ray即可。
systemctl start v2ray.service
2,加强版v2ray+nginx+ws配置
用搭建的网站,nginx代理功能,隐藏自己。ws,你还需要申请一个域名解析到自己的服务器地址(这个简单就不描述了)。
2.1 搭建LNMP(Linux+nginx+mysql+php)网站架构
具体参考我的另一篇文章:搭建LNMP(Linux+Nginx+Mysql+PHP)坏境
并配置好相关文件,可正常访问网站。
2.2 配置nginx
在原来server中加入一个location /kshad 模块:
注意两点即可:
- /kshad 这里的名称需与v2ray配置的path名称一致。
- proxy_pass后面端口与v2ray配置端口一致。
完整配置如下:
server {
listen 80;
server_name #填入自己申请的域名(如www.asdaik.com);
location / {
root /www;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location /kshad { # 与 V2Ray 配置中的 path 保持一致
if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
return 404;
}
proxy_redirect off;
proxy_pass http://127.0.0.1:9532; # 假设WebSocket监听在环回地址的10000端口上
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;
}
}
配置完成,初步隐藏完成,这时也可以使用。
直接使用重启nginx及v2ray即可。
systemctl restart nginx.service
systemctl restart v2ray.service
3,加强最终版v2ray+nginx+ws+ssl+cdn配置
3.1 配置SSL证书
以上配置完后,但是在访问网站时,你的path还是会暴露在GFW下,这时需要用SSL证书加密,也就是https。我们用免费的certbot签证书即可。
参考我的另一篇文章。Certbot给网站域名申请免费SSL证书 及Nginx配置
3.2 配置cdn
cdn有很多,用CDN后,会隐藏我们的真实IP。这里也是采用免费的Cloudflare即可(也提供免费SSL,可以自己研究下)。
官网注册账号:www.cloudflare.com
第一步:添加站点域名
第二部,在DNS选项打开代理保存即可。
到这里,整个配置完成。
重启后,可以科学上网了。
systemctl restart nginx.service
systemctl restart v2ray.service
4,客户端配置
自行下载系统版本,参考:神一样的工具们
windows: https://github.com/2dust/v2rayN/releases
安卓:https://github.com/2dust/v2rayNG/releases
苹果:免费v2ray iOS客户端有OneClick、Leaf,付费v2ray iOS客户端有:Shadowrocket、pepi、i2Ray、Kitsunebi和Quantumult。
基本配置三个即可:
服务器地址(域名或ip)、端口(port为443,跟你v2ray配置的端口没关系)、用户id(uuid)。
但是我们已经通过加密过后,还需要配置:
加密方式一般为aes-128-gcm,协议为ws,伪装域名留空,路径为/kshad(v2ray配置的path),开启tls和不安全传输,设置完保存
开始翻墙,科学上网了。
Pingback引用通告: VPN搭建科学上网,Linux搭建Socks5代理服务器 - 运维笔记(ywbj.cc)
阿里云服务器443端口不通怎么办呢
除非你自己关闭了,否则443不可能不通
帅