v2ray + websocks + tls + nginx/caddy + let’s encrypt 搭建科学上网教程

目录

  1. 前言
  2. 环境准备
  3. v2ray 安装与配置
  4. websocks 配置
  5. nginx 配置
  6. caddy 配置
  7. let’s encrypt 证书申请
  8. 测试与验证
  9. 常见问题解答
  10. 总结

1. 前言

在当前网络环境下,许多用户都需要通过科学上网的方式访问被屏蔽的网站和资源。 v2ray 作为一款优秀的科学上网工具,提供了多种协议和传输方式,可以有效避开网络审查和限制。结合 websocksnginxcaddylet’s encrypt 等技术,我们可以搭建一个安全、稳定的科学上网环境。

本文将详细介绍如何使用这些技术,从软件安装到最终部署,为读者提供一个全面的教程,帮助大家轻松上手。

2. 环境准备

在开始操作之前,请确保您的服务器满足以下要求:

  • 操作系统: Ubuntu 20.04 LTS 或更高版本
  • 公网 IP 地址
  • 域名 (可选)

接下来,请按照以下步骤进行环境准备:

  1. 更新系统软件包: bash sudo apt-get update sudo apt-get upgrade -y

  2. 安装必要的依赖包: bash sudo apt-get install -y curl gnupg2 software-properties-common

  3. 如果您有域名,请将其解析到您的服务器 IP 地址。

3. v2ray 安装与配置

  1. 安装 v2ray: bash bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

  2. 配置 v2ray: bash sudo nano /usr/local/etc/v2ray/config.json

    在配置文件中,您需要设置以下参数:

    • serverPort: v2ray 服务监听的端口
    • uuid: 用于标识客户端的唯一 ID
    • alterId: 额外 ID 的数量,默认 64 即可
    • network: 传输协议,可选 tcpkcpws
    • path: 当使用 ws 协议时,需要设置路径
  3. 启动 v2ray 服务: bash sudo systemctl start v2ray sudo systemctl enable v2ray

4. websocks 配置

  1. 安装 websocks: bash sudo apt-get install -y python3 python3-pip sudo pip3 install websockets

  2. 创建 websocks 服务器脚本: bash sudo nano /usr/local/bin/websocks.py

    在脚本中添加以下内容:

    python import asyncio import websockets

    async def handle_client(websocket, path): async for message in websocket: # 处理客户端发送的消息 print(f”Received message: {message}”) # 向客户端发送响应 await websocket.send(“Hello, client!”)

    start_server = websockets.serve(handle_client, “0.0.0.0”, 8080)

    asyncio.get_event_loop().run_until_complete(start_server) asyncio.get_event_loop().run_forever()

  3. 启动 websocks 服务: bash sudo chmod +x /usr/local/bin/websocks.py sudo /usr/local/bin/websocks.py

5. nginx 配置

  1. 安装 nginx: bash sudo apt-get install -y nginx

  2. 配置 nginx: bash sudo nano /etc/nginx/conf.d/default.conf

    在配置文件中添加以下内容:

    nginx server { listen 80; listen 443 ssl; server_name your-domain.com;

    ssl_certificate /path/to/ssl/cert;
    ssl_certificate_key /path/to/ssl/key;
    
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
    

    }

    your-domain.com 替换为您的实际域名,并填写 SSL 证书的路径。

  3. 重启 nginx 服务: bash sudo systemctl restart nginx

6. caddy 配置

如果您不想手动配置 nginx,可以使用 caddy 来自动处理 SSL 证书的申请和续期。

  1. 安装 caddy: bash sudo apt-get install -y caddy

  2. 配置 caddy: bash sudo nano /etc/caddy/Caddyfile

    在配置文件中添加以下内容:

    your-domain.com { reverse_proxy 127.0.0.1:8080 }

    your-domain.com 替换为您的实际域名。

  3. 启动 caddy 服务: bash sudo systemctl start caddy sudo systemctl enable caddy

7. let’s encrypt 证书申请

如果您使用 caddy,则无需手动申请 let’s encrypt 证书,caddy 会自动完成这个过程。

如果您使用 nginx,则需要手动申请 let’s encrypt 证书:

  1. 安装 certbot: bash sudo apt-get install -y certbot

  2. 申请证书: bash sudo certbot certonly –nginx -d your-domain.com

    your-domain.com 替换为您的实际域名。

  3. 证书续期: bash sudo certbot renew

    您可以将此命令添加到计划任务中,定期自动续期证书。

8. 测试与验证

  1. 访问您的域名 (或服务器 IP),确认 nginx 或 caddy 正常工作。
  2. 使用 v2ray 客户端连接您的服务器,验证科学上网是否成功。

9. 常见问题解答

Q1: 如何配置 v2ray 客户端?

A1: 您可以根据您使用的操作系统,下载对应的 v2ray 客户端。在客户端中,填写服务器地址、端口、UUID 和传输协议等信息,即可连接到您的 v2ray 服务。

Q2: 为什么我无法访问 v2ray 服务器?

*A2: 请检查以下几个方面:

  1. 服务器防火墙是否已开放相关端口。
  2. v2ray 服务是否正常启动。
  3. nginx 或 caddy 配置是否正确。
  4. 域名解析是否正确。*

Q3: 如何更新 v2ray 和其他软件?

A3: 您可以定期运行 sudo apt-get updatesudo apt-get upgrade 命令,来更新系统软件包。对于 v2ray,可以使用 bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh) 命令来更新到最新版本。

Q4: 如何查看 v2ray 和 websocks 的日志?

*A4: 您可以使用以下命令查看日志:

  • v2ray: sudo journalctl -u v2ray
  • websocks: sudo tail -n 100 /var/log/syslog*

10. 总结

通过本文的详细教程,相信您已经掌握了如何使用 v2ray、websocks、nginx/caddy 和 let’s encrypt 搭建一个安全、稳定的科学上网环境。这种方式不仅能有效避开网络审查,还能确保您的网络流量得到加密保护。希望本文对您有所帮助,祝您科学上网愉快!

正文完