OP 是网络苦手,麻烦大佬们帮忙看下,谢谢
OP 有公网 IP ,原来的内网穿透方案是 ROS 做端口映射,在 NAT 里做了 dst-nat ,例如将外网的 11190 映射到 192.168.0.110 机器的 1190 ,
192.168.0.110 机器是一台黑群晖,在上面用自带的反向代理服务器把 http 的 1189 代理成 https 的 1190
用起来没有问题。后来 OP 想要把网络相关的都放在一个软路由上,于是在软路由虚拟 Alpine 的 docker 上( ip 为 192.168.0.3 )搞了一个 Nginx Proxy Manager
首先是 docker 的端口映射,80->51080,443->51443 ,此时访问 http://192.168.0.3:51080 有 NPM 的欢迎页,但是访问 https://192.168.0.3:51443 提示无法访问此网站。
因为阿里云的 ssl 免费证书是单域名的,还在 NPM 上搞了个 lets encrypt 的 ssl 证书。
添加了一个 flare 开头的二级域名指向 192.168.0.110 的 1189 ,群晖上那条 http 的 1189 代理成 https 的 1190 的规则也删掉了
在阿里云上好像没有特别多设置 ,只是 cname 操作了下 flare 二级域名
ROS 软路由上加了一条映射,把外网的 51443 映射到 NPM 那台机器的 51443 上
至此,ping 域名和 flare.域名,都可以得到公网 IP ,可以 ping 通,端口检测域名和 flare.域名的 51443 端口都是开放的。
手机切了 5G ,https://flare.域名:51443 无法访问。OP 猪脑过载了,问题是出在哪里呢?感觉公网映射的端口还有解析的域名子域名这些都没有问题,应该是把请求给到了 NPM 了,是因为我的 SSL 证书有问题吗? 另外我怀疑是内网访问不了 https://192.168.0.3:51443 ,于是我把 NPM 里面改成 http 的代理,ROS 配置了 51080 的映射,但是外网还是访问不了。
1
Donaldo 338 天前
无法访问的错误提示是什么呢?可以在电脑上 curl -vvvv https://flare.xxx:51443 看看有没有问题(其实不需要切网,想切的话连你手机热点也可以),现在信息太少了判断不出来问题在哪里,我总结一下,你在做的就是把 110 的 1189 通过域名 flare 反代到 npm 的 51443 ?
或许看看 110 这台主机的防火墙设置,1189 有没有 allow ?其次 exec 一个 bash 进 npm 的容器,curl 一下看看能不能访问到 110 的 1189 ? |
2
keegan 338 天前
是我浅薄了吗? HTTPS 就是 443 端口,怎么 HTTPS 还能带别的端口呢?
在我看来简单做法就是,LZ 需要把外网的 443 端口转发到 51443 上面,直接使用 https 访问 |
4
EdmondGUO OP |
5
EdmondGUO OP @Donaldo 不知道为什么睡了一觉起来可以访问了🤣这下小丑了。
对了,用手机 5G 是因为我是用的 ROS 作端口转发,他不会自动做端口回流,所以用域名访问不了内网的机器。因为我搞了两个 heimdall 导航页也来分别记录内网服务地址和映射出去到公网的地址,有些内网服务没有映射出去,所以没什么用域名访问内网机器的需求了 |
6
Achophiark 337 天前 via Android
npm:81 才是 web ui 吧
|
7
Achophiark 337 天前 via Android
npm 内置的 acme 国内怕是不能签发证书吧
|
8
EdmondGUO OP @Achophiark #6 81 是管理 ui ,80 443 是他的 http 和 https 端口。今天中午莫名奇妙的好了,也间接证明了它内置的可以用,是 Let's Encrypt 的
|
9
Achophiark 337 天前 via Android
第一次可以,续签不行的
|
12
ttxhxz 336 天前 1
说到国内或者续签不行的。可以试试 image: 'jc21/nginx-proxy-manager:2.9.22'这个版本的 npm 。我这边用它自动申请和续期阿里云的泛域名证书是可以的。后面 npm 升级后就不行了,所以我一直固定在这个版本。
@Achophiark |
13
xxgzzzzzz 333 天前
lucky 貌似 更轻量.....(虽然我以前也觉着这是个大杂烩)
|