代理服务搭建与使用

通过服务代理的任何行为请遵守中华人民共和国和当地法律

搭建代理服务

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时需要加身份校验

重要的事情说三遍:

任何行为请遵守中华人民共和国和当地法律
任何行为请遵守中华人民共和国和当地法律
任何行为请遵守中华人民共和国和当地法律