出门在只有IPV4但是需要访问家里的IPV6设备,简单的利用服务中转

首先有一台拥有IPV6和IPV4的服务器。在服务器上执行

curl https://ipv6.ddnspod.com/

docker默认不开启IPV6,需要手动开启(没有使用docker的略过相关部分,自行配置nginx)

vi /etc/docker/daemon.json

按i键,然后粘贴下面的代码

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64"  // 确保这个范围没有和现有的网络冲突
}

输入":wq"回车(注意冒号)

然后重启 Docker 服务:

sudo systemctl restart docker

确认 Docker 网络的 IPv6 配置

docker run -it --network bridge alpine sh

# aws
ping6 google.com

# 阿里云
ping -6 aliyun.com

# 会输出相关信息
PING google.com (2404:6800:4004:801::200e): 56 data bytes
64 bytes from 2404:6800:4004:801::200e: seq=0 ttl=116 time=1.247 ms

在docker上安装nginx的ui版。docker-compose.yml文件的代码

version: '3.0'
services:
  app:
    image: 'jc21/nginx-proxy-manager:2.9.14'
    restart:  unless-stopped
    container_name: nginx-proxy-manager #容器名称
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - /root/software/nginx-proxy-manager/data:/data
      - /root/software/nginx-proxy-manager/html:/data/html
      - /root/software/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
    networks:
      nginx-proxy-manager-network:
        ipv6_address: "2001:db8:2::2" # 可选,手动指定 IPv6 地址

networks:
  nginx-proxy-manager-network:
    driver: bridge
    enable_ipv6: true
    ipam:
      config:
        - subnet: "2001:db8:2::/64" # 设置 IPv6 子网

把文件上传到服务器指定目录,在指定目录下执行。(没有安装docker-compose的自行安装)

docker-compose up -d

步骤 1:访问 Nginx Proxy Manager UI

  • 打开浏览器并进入 NPM 的管理界面。
  • 登录到 Nginx Proxy Manager。

步骤 2:添加或编辑代理主机 (Proxy Host)

  • 在 NPM 的侧边栏中选择 Proxy Hosts。
  • 点击 Add Proxy Host 创建一个新的代理主机,或者选择现有的代理主机并点击 Edit 进行编辑。

步骤 3:配置代理主机的域名和目标服务

Domain Names
1. 在 Domain Names 字段中,输入客户端访问的域名或 IP 地址(即面向客户端的 IPv4 地址或域名)。

  • 这是客户端使用 IPv4 访问的入口。例如 example.com 或 192.0.2.1。

Scheme
2. 在 Scheme 下拉列表中,选择协议:

  • 如果后端服务器使用 HTTP,请选择 http。
  • 如果后端服务器使用 HTTPS,请选择 https。

Forward Hostname / IP
3. Forward Hostname / IP 字段中,输入你后端服务器的 域名,该域名解析为 IPv6 地址。

  • 例如:ipv6.example.com。
  • Nginx 将会解析这个域名并与后端服务器通过 IPv6 建立连接。

Forward Port
4. 在 Forward Port 中输入后端服务器的端口号。

  • 例如,如果你的后端服务监听 80 端口,则输入 80,如果监听 443 端口,则输入 443。

步骤 4:高级设置 (Custom Nginx Configuration)

如果你希望进行进一步的自定义配置,例如控制客户端请求头或其他高级设置,可以进入高级设置:

  1. 点击页面上的 Advanced 标签。
  2. 在 Custom Nginx Configuration 部分中,你可以根据需要输入自定义 Nginx 配置。不过,在大多数情况下,默认设置已经足够。

例如,如果你希望明确设定 Nginx 在使用 IPv6 转发请求时的行为,可以添加如下配置:

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_set_header X-Forwarded-Proto $scheme;

这些设置会确保 Nginx 保留客户端的原始请求信息,如 Host 和 IP 地址。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐