家庭网络ipv6使用指南:Nginx Proxy Manager反向代理及证书配置
家里的网络虽然有ipv6,但是站点比较多,总不能记下每个ipv6地址,还有部分环境配置动态域名比较繁琐。所以根据 YouTube Vedio Talk大佬的指南,对家庭ipv6的反向代理实现只有ipv6的情况下使用地址+端口号访问。
说明
1.已经开启了ipv6并且测试ipv6地址能正常访问openwrt。
2.需要自备一个域名。
2.Nginx Proxy Manager反向代理理论与端口转发Socat不能在同一个地址。 例如:我的端口转发Socat在主路由openwrt。(10.10.10.1)。Nginx Proxy Manager反向代理在pve的lxc容器下建的docker(10.10.10.2)
3.这个方法适用多个一个虚拟机多个环境,如果只是有一个docker那么可以直接安装Lucky大吉解析一个ip+端口理论也是行的。
环境部署
1.在主路由openwrt iStore 安装 Socat端口转发
2.在主路由openwrt iStore 安装 Lucky大吉 动态域名解析与同步
3.docker安装portainer,我使用的汉化版。安装成功后docker地址+9000就可以访问到portainer。
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce
4.安装Nginx Proxy Manager反向代理,在portainer里面创建堆栈内容如下。
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '8080:80' # Public HTTP Port 需要更改的位置
- '4443:443' # Public HTTPS Port 需要更改的位置
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
# Mysql/Maria connection parameters:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
MARIADB_AUTO_UPGRADE: '1'
volumes:
- ./mysql:/var/lib/mysql
创建好后部署,成功后lxc容器+81即可访问Nginx Proxy Manager。
默认账户密码:
Email: admin@example.com
Password: changeme
端口转发
在openwrt主路Socat设置端口转发,添加两个端口443转到4443和80转到8080
动态域名解析
Nginx Proxy Manager配置ssl证书
证书有两种配置方式:一种是提前申请号上传,另外一种是使用Nginx Proxy Manager代申请域名添加
接下来就可以使用解析成功的域名加上端口号4443访问内网地址了。建议配置一个导航 这样会更方便。
注意事项
1.pve虚拟机的内网地址需要填写:https
2.如果有使用Home Assistant需要打开内网地址下面的第三个选项Websockets Support,不然是没办法访问的。