如何玩公网,怎么远程访问(二)
1 序言
1.1 回顾上一篇文章
经过上一篇文章,我们得到了域名以及域名的 token,也确定了我们是否有公网 IP。那么本篇内容就是利用这些东西,怎么在一些解析平台解析域名。但是实际不同场景我会放到第三篇文章介绍。
1.2 举例说明
- 比如你域名是在阿里云注册的,域名为:ceshi.cn
- AccessKey ID为:ceshi,AccessKey Secret:ceshi
- 以及我们的公网IPv4为:116.133.130.136
- IPv6为:2408:336c:6222:cbb:c5da:d808:f035:9e38。
- 我们注册的域名为:ceshi.cn,
- 那么主域名是:ceshi.cn 或者 @.ceshi.cn,
- 泛域名是:*.ceshi.cn,二级域名就是:erji.ceshi.cn。意思就是主域名前面这个前缀是可以自己自定义的。
- 以上信息都是我乱写的,为了后面教程,你对应自己获取的就好。
2. 如果使用爱快
2.1 爱快动态域名
爱快动态域名怎么打开?首先打开爱快页面,高级应用,动态域名,点击添加就得到如图所示界面。 
2.2 爱快动态域名配置
- 爱快动态域名服务商有好几个,但是常用的只有腾讯云域名:dnspod.cn,阿里云域名:aliyun.com,以及托管到 **Cloudflare.com **的域名。
- 这次我们就按照阿里云域名注册信息填写配置内容。
- 首先,我们要去阿里云云解析 DNS,添加以下 DNS 记录,如下图所示。

- 记录类型 A 代表是公网 IPv4,记录类型 AAAA 代表是公网 IPv6,主机记录这里就是域名,你填写 ***** 就是泛域名,可以是任何值,你填写ik,那么你的二级域名就是:ik.ceshi.cn,记录值就根据你选择是 IPv4 还是 IPv6 填写。
- 假如我们输入的记录类型 A,公网 IPv4 为:116.133.130.136,二级域名为:ik.ceshi.cn,右下角确定,等上几分钟解析。
- 其次,我们在爱快动态域名中,输入如图所示的信息,保存等待解析,显示成功说明解析到了。

2.3 爱快端口转发
- 为什么要端口转发,首先一个是要保护端口,其次就是我们在多层NAT之间访问,最重要的一点就是家庭宽带是没有 http 默认的 80 端口,也没有 https 默认的 443 端口的。所以我们需要转发端口,如图所示打开端口转发页面。

- 假如爱快的内网 IP 是:192.168.5.1,内网端口默认 80,我们想外网访问的端口是 81,那么可以添加以下信息如图所示。

2.4 爱快远程访问总结
通过爱快域名解析,以及端口转发我们就能够得到了我们想转发的域名和端口,比如
http://ik.ceshi.cn:81,那么访问的就是爱快的页面。域名解析是设备,端口转发不同的内网 IP 以及内网端口,我们就可以通过相同域名+不同端口访问相应的内网服务。
3 OpenWRT
3.1 OpenWRT域名解析插件
- OpenWRT 域名解析插件有很多,比如 Alidns 只能解析阿里云的域名,Dnspod 只能解析腾讯云的域名,但是 DDNS-GO 这个插件能解析大多数域名,如图所示。

- 填写方式和爱快差不多,唯一优势就是可以一次性解析多个域名,同时解析 IPv4 和 IPv6。
- 假如我们选择接口获取 IP,公网 IPv4 为:116.133.130.136,主域名为:ceshi.cn,二级域名为:v4.ceshi.cn;
- 以及假如我们选择通过网卡获取,主域名为:ceshi.cn,二级域名为:v6.ceshi.cn,公网IPv6为:2408:336c:6222:cbb:c5da:d808:f035:9e38。
- AccessKey ID为:ceshi,AccessKey Secret:ceshi。那么点保存解析我们就可以看到日志解析情况。
3.2 OpenWRT 端口转发
- OpenWRT 端口转发的话有自己的防火墙转发,但是不好用,我这里推荐用 Socat 这个瑞士军刀的端口转发,比 Netcat 转发好用。
- Socat 端口转发工具好处是,可以同时转发同一个设备服务内网的 IPv4 和 IPv6,这样就相当于 IPv6 解析的域名,转发内网 IPv4 可以被外网访问,但是其他的端口转发工具是不能转发 IPv6 的端口的,爱快也不行。
- 所以我们打开 Socat 端口转发工具,填写如图所示的内容,假如 OpenWRT 的内网 IP 是:192.168.5.2,内网端口默认 80,我们想外网访问的端口是 81。

3.4 OpenWRT远程访问总结
- 通过 OpenWRT 域名解析,以及 Socat 端口转发我们就能够得到了我们想转发的域名和端口,但是我们一次性得到的域名会比爱快得到的多。
- 比如
http://ceshi.cn:81,是我们 IPv4 或者 IPv6 解析到的。 - 比如
http://v4.ceshi.cn:81,是我们 IPv4 解析到的。 - 比如
http://v6.ceshi.cn:81,是我们 IPv6 解析到的。
4. Nginx
- 什么是反向代理?解析代理分正向代理,反向代理。其他的我们通常用不到,我们只要记住以下格式就行,无论怎么代理,都是通过域名+端口的方式。
- 域名解析 = 相同域名+不同端口,端口转发,比如
http://ceshi.cn:81为爱快,http://ceshi.cn:82为 openwrt。 - 反向代理 = 不同二级域名+相同端口,DDNS解析域名,比如
http://ik.ceshi.cn:81为爱快,http://op.ceshi.cn:81为 openwrt - 反向代理最大的好处就是减少端口的暴露,避免被人扫端口,还能 SSL 证书认证,这样你用 https 访问就不会出现不安全的提示,反向代理其实就是一种端口不变的端口转发,实际是需要先去域名解析的。
4.1 DDNS 域名解析
- Nginx 是一种反向代理,相当于端口转发,实际是需要域名先解析的。
- 介绍了好几种域名解析的方法,我这里还是以爱快为例子。
- 因为我喜欢用的是泛域名和主域名,假如我们主域名是:ceshi.cn,泛域名为:*.ceshi.cn。
- 如果你 IPv4 和 IPv6 都有那么,你就要添加两个任务,不同的是 IP 类型选择。爱快如图所示解析。

- 这样我们就得到了,DDNS 域名解析。
4.2 Nginx 反代
- 如果,你看过前面文章,有宝塔和 1Panle 的介绍,你安装过这两个建站多功能平台,那么你应该会看到 Nginx 反代。
- Nginx 其实是有纯代码的配置代理的,但是那个学起来不容易。还得是有图形界面的,宝塔和 1Panle 的 Nginx 是差不多的,那么我只介绍一种就行,我介绍的是宝塔平台,如图所示。

4.3 Nginx反代设置
- 打开 Nginx 反代,添加站点。
- 假如我们在阿里云申请的域名为:ceshi.cn,固定外网端口为 88。
- 我们需要代理的服务为打开爱快的主页,爱快IP是:192.168.5.1,我们可以设置域名为:ik.ceshi.cn,因为我们解析了泛域名,那么我们设置如图所示。

4.4 主路由转发端口
- 这样我们就代理了
http://ik.ceshi.cn:88为内网服务为的域名解析。 - 当然这样单纯的代理是不通的,毕竟我们没主路由转发这个搭建Nginx服务 IP 的端口,因为我们家宽的 80 端口以及 443 端口是不开放的,所以我们需要在设置域名时候直接带端口,因为域名默认是 80 端口。
- 假设搭建 Nginx 服务的内网 IP 是 192.168.5.5。
- 假如现在需要端口转发,我们可以去主路由,爱快,OpenWRT,或者其他华为小米路由器都是一样的。
- 我这里就以爱快主路由演示代理80端口为88端口,如图所示设置,因为是两个端口,所以我们要转发两个任务。

4.5 SSL 证书
- 这样我们就能通过
http://ik.ceshi.cn:88访问到爱快的主页,但是会提示不安全,所以我们需要 SSL 证书认证。 - 我们在宝塔打开 SSL 证书申请如图所示,选择一个网站的域名申请证书即可,成功申请证书后。
- 我们访问
https://ik.ceshi.cn:88就不会提示不安全。
4.6 Nginx反代总结
反代比域名解析更加减少端口,也增加了 SSL 证书,就不会提示不安全。
5. Nginx-Proxy-Manager
Nginx-Proxy-Manager 其实就是 Nginx 图形化的版本,不用单独依赖宝塔、1Panle 这样的平台才有图形界面,我们后面就简称 NPM 了,NPM 也需要 DDNS 域名解析的,所以这里不赘述了。
5.1 NPM安装
NPM 我们安装的方法是用 docker-compose 的方法,因为我们家宽的 80 端口以及 443 端口是不开放的,所以我们只需要把80端口变成881端口,443 端口变成 882 就行。 NPM 的 webUI 端口为 881,默认登陆账号为:admin@example.com,密码为:changeme。
# 官方文档
# 官方是不带中文翻译的,有翻译的镜像,使用方法都一样。
# https://github.com/xiaoxinpro/nginx-proxy-manager-zh
# https://hub.docker.com/r/zoeyvid/nginx-proxy-manager
# https://hub.docker.com/r/chishin/nginx-proxy-manager-zh
# 默认账号密码 Email:admin@example.com Password: changeme
# ---
name: nginx_npm
# 最后编辑时间:2025-02-14
services:
nginx_npm:
# 镜像地址,中文版本
image: chishin/nginx-proxy-manager-zh:latest
# 容器名字
container_name: nginx_npm
# 主机名
hostname: nginx_npm
# 配置目录
environment:
# 数据库主机名
DB_MYSQL_HOST: npm_db
# 连接数据库端口
DB_MYSQL_PORT: 3306
# 数据库用户
DB_MYSQL_USER: npm
# 数据库密码
DB_MYSQL_PASSWORD: npm
# 数据库名称
DB_MYSQL_NAME: npm
# 如果您的主机上未启用IPv6,请取消注释
DISABLE_IPV6: true
volumes:
# 配置文件目录
- /docker/apps/nginx_npm/npm/data:/data
# let's encrypt SSL证书目录
- /docker/apps/nginx_npm/npm/letsencrypt:/etc/letsencrypt
# 连接数据库
depends_on:
- npm_db
ports:
# WebUI端口
- 881:81
# http 端口
- 882:80
# https 端口
- 883:443
# FTP端口
# - 21:21
# 重启策略,总是重启
restart: always
npm_db:
# 镜像地址
image: jc21/mariadb-aria:latest
# 容器名字
container_name: npm_db
# 主机名
hostname: npm_db
environment:
# 数据库root密码
MYSQL_ROOT_PASSWORD: npm
# 数据库
MYSQL_DATABASE: npm
# 数据库用户
MYSQL_USER: npm
# 数据库密码
MYSQL_PASSWORD: npm
# 是否自动升级,1 = 是 ,0 = 否
MARIADB_AUTO_UPGRADE: 1
volumes:
# 数据库配置文件目录
- /docker/apps/nginx_npm/npm_db/mysql:/var/lib/mysql
# 重启策略,总是重启
restart: always创建好 NPM 的服务,浏览器打开 http://192.168.x.x:881,登录账号后修改账号密码。
5.2 SSL 证书设置
NPM 我们首先是生成 SSL 证书,毕竟我们在 Nginx 已经熟悉了 SSL,如下图所示,打开 Let's Encrypt 申请证书。
假如域名是:ceshi.cn,泛域名是:*.ceshi.cn,阿里云token为:ceshi和ceshi,那么如图所示就可以申请SSL证书。 
5.3 NPM 反代设置
打开主机,代理服务,添加代理服务。假如我们需要反代内网IP为 192.168.5.1 的爱快服务,域名我们设置为 ik.ceshi.cn,端口为 80,那么我们如图所示添加。SSL 选择我们域名申请的 SSL 证书,并且打开所有选项。 

5.4 主路由端口转发以及域名访问
老样子,假如我们 NPM 服务是搭建在内网 IP 为 192.168.5.5 内,我们需要把内网端口 88(原80端口)转发为外网端口 88,以及内网端口 888(原443端口)转发为外网端口 888。方法就不多介绍了,上面都有。这样我们就成功反代了爱快,而且我们可以用域名 http://ik.ceshi.cn:88来访问。
6. Lucky
Lucky 与 Nginx 反代和 NPM 反代是不一样,他不用依赖别的 DDNS 域名解析,Lucky 集成 DDNS 域名解析,端口转发,反向代理 SSL 证书,是一款很好用的服务,当然我们也需要在主路由上端口转发。假如lucky服务是搭建在内网IP为 192.168.5.5 上,那么我们需要转发内网端口 88 为外网端口 88,具体步骤和上面差不多,就不用重复说了。
6.1 Lucky安装
Lucky 我们安装的方法是用 docker-compose 的方法,Lucky 的 webUI 端口为 16601,默认登陆账号为:666,密码为:666。
# 官方文档
# https://hub.docker.com/r/gdy666/lucky
# https://www.lucky666.cn/docs/install
# https://www.lucky666.cn
#默认端口16601,账号666,密码666
# ---
name: lucky
# 最后编辑时间:2025-02-14
services:
lucky:
# 镜像地址
image: gdy666/lucky
# 容器名字
container_name: lucky
# 主机名
hostname: lucky
volumes:
# 配置文件目录
- /docker/apps/lucky:/goodluck
# 直接使用host模式,可在设置内自定义WebUI端口,默认端口16601
network_mode: host
# 重启策略,总是重启
restart: always创建好 Lucky 的服务,浏览器打开 http://192.168.x.x:16601,登录账号后修改账号密码,建议加一个访问的口令。
6.2 SSL 证书设置
打开 SSL/TLS 证书,添加证书。假如我们域名是阿里云注册的:ceshi.cn,一样的token,主域名:ceshi.cn,泛域名:*.ceshi.cn。如图所设置,我们就可以申请 SSL 证书,等待几分钟就会成功,失败就多申请几次。 
6.3 Lucky 域名解析
这个就是 Lucky 牛的地方了,自带域名解析。打开 lucky,选择动态域名,添加任务。假如你同时有 IPv4 和 IPv6,那么需要分成两个任务来域名解析 IPv4 和 IPv6,这里以 IPv4 为例子。 假如我们域名是阿里云注册的:ceshi.cn,一样的 token,主域名:ceshi.cn,泛域名:*.ceshi.cn。如图所设置,我们就可以域名解析,等待几分钟就会解析成功。 
6.4 Lucky 反向代理
打开 lucky,Web 服务,添加 Web 服务规则,假如我们的端口是 88,如图所示设置。
假如我们需要反代内网 IP 为 http://192.168.5.1 的爱快服务,域名我们设置为 ik.ceshi.cn,添加 web 子规则,如图所示设置就行。
这样我们就成功反代了爱快,而且我们只能用域名 https://ik.ceshi.cn:88 来访问。
6.5 http 重定向为 https
比如我们每次都要输入https:// 那么不是很麻烦,所以就需要 http 重定向为 https。同样我们要添加一个新的 web 服务规则,操作模式为订制模式,端口改为 88,在默认规则并且把反向代理改为重定向,默认目标地址为:https://{host}:{port},如图所示设置。 
完成这两步骤以后,我们就可以输入 ik.ceshi.cn:88,来访问爱快主页。
7. 总结
远程访问,不过就是域名解析+端口转发,反代就是加上 SSL 证书,一切前提就是你有公网 IP。
