代理服务搭建与使用
通过服务代理的任何行为请遵守中华人民共和国和当地法律
搭建代理服务
https://233boy.com/v2ray/v2ray-script/
# 按照提示步骤来搭建代理,我使用no-auto-tls,通过nginx伪装流量,nginx配置如下
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name hk-datat-ps.site;
#隐藏nginx版本号
server_tokens off;
ssl_certificate /etc/letsencrypt/live/domain/fullchain.pem; # certbot申请的证书
ssl_certificate_key /etc/letsencrypt/live/domain/privkey.pem;
#服务端要支持 协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_ecdh_curve X25519:secp384r1;
ssl_prefer_server_ciphers on;
ssl_session_tickets off;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
# 启用 OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
root /opt/webapps;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
location /v2ray路径 {
proxy_pass http://127.0.0.1:port; # v2ray端口
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 5d;
}
location / {
try_files $uri $uri/ =404;
}
location /undefined {
return 301;
}
}
使用代理服务
- Ubuntu桌面使用 - 下载Qv2ray客户端 - 下载v2ray代码包 - 配置客户端,导入配置使用
- 安卓使用v2rayNG - 谷歌商店
- window使用v2rayN - https://github.com/2dust/v2rayN/releases
以下为Ubuntu桌面使用方法
cd /opt
wget https://github.com/Qv2ray/Qv2ray/releases/download/v2.7.0/Qv2ray-v2.7.0-linux-x64.AppImage
chmod +x Qv2ray-v2.7.0-linux-x64.AppImage
wget https://github.com/v2ray/v2ray-core/releases/download/v4.28.2/v2ray-linux-64.zip
unzip v2ray-linux-64.zip -d ./v2ray
# 启动 过程中可能会报错,按照提示来安装依赖包即可
./Qv2ray-v2.7.0-linux-x64.AppImage
# 在打开的软件中设置首选项,设置v2ray可执行文件/opt/v2ray/v2ray,设置v2ray目录为/opt/v2ray即可,保存后导入搭建的v2ray连接后启动
# 设置系统socket代理端口到软件中默认端口127.0.0.1:1089即可科学上网,建议使用本机IP,避免其他服务器无法通过127.0.0.1代理
代理启动谷歌浏览器
# 把这一行写进 ~/.bashrc 做成别名 只对当前的会话生效
alias chrome-proxy='google-chrome-stable --user-data-dir=$HOME/.chrome-proxy --proxy-server="socks5://192.168.1.5:1089"'
# 启动
chrome-proxy
# 标准方案 1. 创建脚本文件,不存在便创建文件或文件夹
cat > $HOME/.local/bin/chrome-proxy << 'EOF'
#!/bin/bash
# 带代理的 Chrome 启动器
# 自动创建数据目录(如果不存在)
mkdir -p "$HOME/.chrome-proxy"
# 启动 Chrome
exec google-chrome-stable \
--user-data-dir="$HOME/.chrome-proxy" \
--proxy-server="socks5://192.168.1.5:1089" \
"$@"
EOF
# 2. 添加执行权限
chmod +x $HOME/.local/bin/chrome-proxy
# 3. 确保 ~/.local/bin 在 PATH 中(通常默认就有)
export PATH="$HOME/.local/bin:$PATH"
# 用法:直接在终端输入 chrome-proxy 即可启动,可同时传入网址参数如 chrome-proxy https://google.com。
Linux使用代理操作
apt-get install proxychains4
vim /etc/proxychains4.conf
# 添加以下内容 本地代理地址
socks5 192.168.1.5 1089
# 使用
proxychains -q apt-get update
# 由于apt-get和proxychains有底层逻辑冲突,所以使用apt原生的代理
sudo tee /etc/apt/apt.conf.d/proxy.conf << 'EOF'
Acquire::http::Proxy "http://192.168.1.5:8888";
Acquire::https::Proxy "http://192.168.1.5:8888";
EOF
sudo apt-get update
自动化更新脚本
#!/bin/bash
# 定义文件路径
VMESS_CONF="/etc/nginx/locations-enabled/vmess"
URL_OUTPUT="/opt/proxy/main.origin.txt"
URL_OUTPUT_BASE64="/opt/proxy/main.txt"
# Vmess更新
echo "Vmess更新"
# 1. 执行 sing-box d (删除 JSON 配置)
echo "正在执行 sing-box d ..."
sing-box d VMess-WS-TLS-domain.json
# 2. 执行 sing-box no-auto-tls 并捕获输出,移除颜色
echo "正在执行 sing-box no-auto-tls ..."
output=$(sing-box no-auto-tls VMess-WS-TLS domain | sed 's/\x1b\[[0-9;]*m//g')
# 3. 提取参数
echo "提取参数中..."
user_id=$(echo "$output" | awk -F'= ' '/用户ID/ {gsub(/ /,"",$2); print $2}')
url=$(echo "$output" | grep -o 'vmess://[^[:space:]]*')
remote_port=$(echo "$output" | awk -F'= ' '/端口 \(port\)/ {gsub(/ /,"",$2); print $2; exit}')
local_port=$(echo "$output" | awk '/no-auto-tls INFO/{f=1} f && /端口\(port\)/{gsub(/ /,"",$2); print $2; exit}')
# 检查是否提取成功
if [ -z "$user_id" ] || [ -z "$url" ] || [ -z "$remote_port" ] || [ -z "$local_port" ]; then
echo "错误:提取参数失败,请检查 sing-box 输出格式。"
exit 1
fi
echo "用户ID : $user_id"
echo "远程端口 : $remote_port"
echo "本地端口 : $local_port"
echo "链接 : $url"
# 4. 生成 Nginx location 配置内容
nginx_config="# sing-box vmess
location /$user_id {
proxy_pass http://127.0.0.1:$local_port;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection \"upgrade\";
proxy_set_header Host \$host;
proxy_read_timeout 5d;
}"
# 直接覆盖写入(不备份)
echo "$nginx_config" > "$VMESS_CONF"
echo "已更新 $VMESS_CONF"
# 5. 保存订阅链接到文件(覆盖写入)
echo "$url" > "$URL_OUTPUT"
echo "已保存链接到 $URL_OUTPUT"
# 检查nginx并重载nginx
# 1. 将main.origin.txt转为base64编码
echo "将main.origin.txt转为base64编码..."
cat $URL_OUTPUT | base64 > $URL_OUTPUT_BASE64
# 2. 检查 Nginx 配置并重载
echo "检查 Nginx 配置..."
nginx -t
if [ $? -eq 0 ]; then
echo "配置正确,重载 Nginx..."
systemctl reload nginx # 或 nginx -s reload,根据系统调整
echo "完成!"
else
echo "Nginx 配置测试失败,请检查 $VMESS_CONF"
exit 1
fi
在crontab中定时执行更新,在客户端访问main.txt加载配置,在访问main.txt时需要加身份校验
重要的事情说三遍:
任何行为请遵守中华人民共和国和当地法律
任何行为请遵守中华人民共和国和当地法律
任何行为请遵守中华人民共和国和当地法律
评论