如何搭建私人上網節點

Page content

前期准备

  • 一台VPS(境外服务器)
  • 一个域名

搭建上网节点

1、V2ray

系统支持:Ubuntu,Debian,CentOS,推荐使用 Ubuntu 22,谨慎使用 CentOS,脚本可能无法正常运行!

执行如下命令:

bash <(wget -qO- -o- https://git.io/v2ray.sh) 

安装完成后,输入 v2ray 就能看到管理面板

V2Ray 脚本简化了很多流程,例如我们常用的是 (添加、更改、查看、删除) 配置,以下内容让你可以快速掌握使用

添加配置:

  • v2ray add -> 添加配置

  • v2ray add ss -> 添加一个 Shadowsocks 配置

  • v2ray add tcp -> 添加一个 VMess-TCP 配置

*v2ray add kcpd -> 添加一个 VMess-mKCP-dynamic-port 动态端口配置

备注,使用 v2ray add 添加配置的时候,仅 *TLS 相关协议配置必须提供域名,其他均可自动化处理。

更改配置:

  • v2ray change -> 更改配置

  • v2ray change tcp -> 更改 TCP 相关配置

  • v2ray change tcp port auto -> 更改 TCP 相关配置的端口,端口使用自动创建,也可以使用 v2ray port tcp auto

  • v2ray change kcp id auto -> 更改 mKCP 相关配置的 UUID,UUID 使用自动创建,也可以使用 v2ray id tcp auto

甲骨文云关闭防火墙和iptabls

systemctl stop firewalld.service

systemctl disable firewalld.service

service iptables stop

chkconfig iptables off
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

2、X-UI面板

我的主機選擇了Debian10系統,所以下面步驟以Debian/Ubuntu為例,連接主機後分別執行下面命令: 1、更新操作系統

apt update -y    

2、 安裝curl

apt install -y curl    

3、安裝socat

apt install -y socat       

4、安裝BBR加速(慎用)

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

5、安装X-ui面板

bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

安裝SSL證書

由於腳本自帶一鍵安裝SSL證書功能,我們只需要輸入:X-UI,在下面選項輸入16即可 然後根據提示,輸入我們提前準備好的域名(我們輸入泛域名:即XXXXX.com,不帶前綴),cloudfare賬戶郵箱,cloudfare的API key,安裝完成後,我們在ROOT目錄下看到一個cert文件夾,這個就是證書的存放目錄。

域名+cer就是公鑰證書 域名+key就是私鑰證書

我們右鍵,選擇復製路徑,把兩個證書的路徑提前保存好

訪問X-UI面板

這時我們就可以通過域名+你自定義端口號來訪問X-ui面板了。但是我在部署好之後,發現無法登錄,這裏要排除你主機防火墻是否開放了你自定義端口,我們在主機輸入:

ufw allow 你的端口號

另外,如果不魔法上網,很大概率連接不上面板的登錄界面,所以先要魔法上網再嘗試登錄。

3、trojan部署

#一键安装/更新

source <(curl -sL https://git.io/trojan-install)

#卸载

source <(curl -sL https://git.io/trojan-install) --remove

docker运行

docker run --name trojan-mariadb --restart=always -p 3306:3306 -v /home/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=trojan -e MYSQL_ROOT_HOST=% -e MYSQL_DATABASE=trojan -d mariadb:10.2
docker run -it -d --name trojan --net=host --restart=always --privileged jrohy/trojan init

端口和root密码以及持久化目录都可以改成其他的

运行完后进入容器 docker exec -it trojan bash, 然后输入’trojan’即可进行初始化安装

启动web服务: systemctl start trojan-web

设置自启动: systemctl enable trojan-web

更新管理程序: source <(curl -sL https://git.io/trojan-install)

docker 使用教程

安装环境

curl -fsSL https://get.docker.com | sh
sudo apt-install docker-compose

启动环境

systemctl start docker

开机自启动环境

systemctl enable docker

查看docker环境版本

docker --version

删除镜像

docker rmi nginx:latest

查看所有容器

docker ps -a

查看运行的容器

docker ps

启动容器

docker start nginx

暂停容器

docker stop nginx

删除容器

docker rm nginx

强制删除容器

docker rm -f nginx

启动所有容器

docker start $(sudo docker ps -a -q)

暂停所有容器

docker stop $(sudo docker ps -a -q)

暂停所有容器

docker rm -f $(sudo docker ps -a -q)

进入容器

docker exec -it nginx bash

查看容器日志

docker logs nginx

docker部署cloudreve

docker run -d \
--name cloudreve \
-p 5212:5212 \
-v /home/docker/cloudreve/uploads:/cloudreve/uploads \
-v /home/docker/cloudreve/config:/cloudreve/config \
-v /home/docker/cloudreve/db:/cloudreve/db \
-v /home/docker/cloudreve/avatar:/cloudreve/avatar \
-e TZ="Asia/Shanghai" \
--restart always \
xavierniu/cloudreve

docker部署nginx-proxy-manager

nano docker-compose.yml
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

docker部署nextweb

docker pull yidadaa/chatgpt-next-web

docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY=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 \
   -e CODE=919816 \
   yidadaa/chatgpt-next-web

docker部署vocechat

docker run -d --restart=always \
  -p 3009:3000 \
  --name vocechat-server \
  -v ~/.vocechat-server/data:/home/docker/vocechat-server/data \
  privoce/vocechat-server:latest-arm64 \
  --network.frontend_url "https://voce.haobin.org"
version: "3.8"
services:
  cloudreve:
    container_name: cloudreve
    image: cloudreve/cloudreve:latest
    restart: unless-stopped
    ports:
      - "5212:5212"
    volumes:
      - temp_data:/data
      - ./cloudreve/uploads:/cloudreve/uploads
      - ./cloudreve/conf.ini:/cloudreve/conf.ini
      - ./cloudreve/cloudreve.db:/cloudreve/cloudreve.db
      - ./cloudreve/avatar:/cloudreve/avatar
    depends_on:
      - aria2
  aria2:
    container_name: aria2
    image: p3terx/aria2-pro
    restart: unless-stopped
    environment:
      - RPC_SECRET=your_aria_rpc_token
      - RPC_PORT=6800
    volumes:
      - ./aria2/config:/config
      - temp_data:/data
volumes:
  temp_data:
    driver: local
    driver_opts:
      type: none
      device: $PWD/data
      o: bind