找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 1723|回复: 8

求助,希望实现外网https访问到docker容器

[复制链接]
发表于 2023-6-24 22:12 | 显示全部楼层 |阅读模式
本帖最后由 VaporTang 于 2023-6-24 23:13 编辑

前置:我的路由器wan口是有运营商的公网ip的 外网80和443自然也是被约束了的


在配置里开放端口访问权限后
目前外网用我的域名:8090是可以访问这个容器的 (http)

然后我的折腾开始了
我希望外网可以使用https连接到我的docker容器 [浏览器提示不安全非常不顺眼]
已经申请到了.pem证书了
开始研究nginx
尝试配置,但是对nginx一窍不通
我是让nginx把uci干掉了,然后似乎目前我路由器也没有uhttpd[不知道为啥,但是我openwrt web是正常的]

先贴一个默认的配置[这个配置一切正常,浏览器192.168.1.1就是openwrt的web ui]
  1. worker_processes auto;

  2. user root;

  3. events {}

  4. http {
  5.         access_log off;
  6.         log_format openwrt
  7.                 '$request_method $scheme://$host$request_uri => $status'
  8.                 ' (${body_bytes_sent}B in ${request_time}s) <- $http_referer';

  9. include mime.types;
  10. default_type application/octet-stream;
  11. sendfile on;

  12. client_max_body_size 2048M;
  13. client_body_buffer_size 8192M;
  14. large_client_header_buffers 2 1k;

  15. gzip on;
  16. gzip_vary on;
  17. gzip_proxied any;

  18. root /www;
  19. server { #see uci show 'nginx._lan'
  20. listen 80;
  21. listen [::]:80;
  22. server_name _lan;
  23. include restrict_locally;
  24. include conf.d/*.locations;
  25. access_log off; # logd openwrt;
  26. }

  27. include conf.d/*.conf;
  28. }
复制代码
然后我尝试修改成下面的就发现内网访问192.168.1.1(路由器内网ip)就会提示
嗯… 无法访问此页面

192.168.1.1 已拒绝连接。

这个配置真的纯属乱写,大佬勿喷,我已经socat把外部8443转到内部443了,所以下面有个8443

  1. events {}

  2. http {
  3.         access_log off;
  4.         log_format openwrt
  5.                 '$request_method $scheme://$host$request_uri => $status'
  6.                 ' (${body_bytes_sent}B in ${request_time}s) <- $http_referer';

  7.         include mime.types;
  8.         default_type application/octet-stream;
  9.         sendfile on;

  10.         client_max_body_size 2048M;
  11.         client_body_buffer_size 8192M;
  12.         large_client_header_buffers 2 1k;

  13.         gzip on;
  14.         gzip_vary on;
  15.         gzip_proxied any;

  16.         root /www;

  17.         server {
  18.                 listen 80;
  19.                 listen [::]:80;
  20.                 server_name _lan;
  21.                 include restrict_locally;
  22.                 include conf.d/*.locations;
  23.                 access_log off; # logd openwrt;
  24.         }

  25.         server {
  26.                 listen 8443 ssl;
  27.                 server_name domain; # 域名我就不贴了
  28.                 ssl_certificate /etc/nginx/conf.d/domain.cert.pem;
  29.                 ssl_certificate_key /etc/nginx/conf.d/domain.key.pem;

  30.                 location / {
  31.                         proxy_pass http://localhost:8090;
  32.                         proxy_set_header Host $host;
  33.                         proxy_set_header X-Real-IP $remote_addr;
  34.                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  35.                         proxy_set_header X-Forwarded-Proto $scheme;
  36.                         proxy_redirect off;
  37.                 }
  38.         }

  39.         include conf.d/*.conf;
  40. }
复制代码


希望能来个大佬帮我看看,只要能实现我目的就行,不是必须得用nginx
感觉我有点啰嗦,但是主要我是希望可以把我的网络环境全面的讲一下,openwrt各种冲突都爱好了?
核心目的就一个吧
外网在浏览器地址栏输入我的域名:8090,https连接到我的路由器然后可以访问到docker容器
万分感激



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2023-6-24 22:17 | 显示全部楼层
clash 有个设置,关闭外网访问权限,找到它,关掉就行了

点评

请问你这个如何实现我的需求,以及我的openclsh的docker的冲突已经处理好了?  详情 回复 发表于 2023-6-24 22:19
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-24 22:19 | 显示全部楼层
tty228 发表于 2023-6-24 22:17
clash 有个设置,关闭外网访问权限,找到它,关掉就行了

请问你这个如何实现我的需求,以及我的openclsh的docker的冲突已经处理好了?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-6-24 22:24 | 显示全部楼层
VaporTang 发表于 2023-6-24 22:19
请问你这个如何实现我的需求,以及我的openclsh的docker的冲突已经处理好了? ...

你外网无法访问本来就是 clash 接管了防火墙引起的问题,关掉就完事了还能有什么冲突

点评

你好,我的需求是https连接docker容器 我提及openclash只是想说明openclash可能会和docker端口冲突,但是目前这个情况被我修复了 我现在希望实现的就是外网https连接我的docker容器,和我开不开clash无关,而且就算clash  详情 回复 发表于 2023-6-24 22:29
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-24 22:29 | 显示全部楼层
tty228 发表于 2023-6-24 22:24
你外网无法访问本来就是 clash 接管了防火墙引起的问题,关掉就完事了还能有什么冲突
...

你好,我的需求是https连接docker容器
我提及openclash只是想说明openclash可能会和docker端口冲突,但是目前这个情况被我修复了
我现在希望实现的就是外网https连接我的docker容器,和我开不开clash无关,而且就算clash修改了防火墙,我的容器用http协议在外网也可以访问
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-6-24 22:33 | 显示全部楼层
而且你要在外网访问你路由器上的 443 端口,不需要更改 nginx 或者 uhttpd 的监听端口,直接在防火墙上开启端口转发就可以了
你现在相当于 socat 把外部 8443 转到内部 443 ,然而你 https 的监听端口已经被改掉了,都不是 443 了,你转发到 443 有什么意义
要么就 **** 转发到 443,然后用 **** 访问,要么就改监听端口,直接用监听端口访问,为什么要两个都搞

点评

那么可以请你详细的从头开始告诉我该怎么做吗 谢谢你  详情 回复 发表于 2023-6-24 22:36
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-24 22:36 | 显示全部楼层
tty228 发表于 2023-6-24 22:33
而且你要在外网访问你路由器上的 443 端口,不需要更改 nginx 或者 uhttpd 的监听端口,直接在防火墙上开启 ...

那么可以请你详细的从头开始告诉我该怎么做吗
谢谢你
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-6-24 23:16 | 显示全部楼层
本帖最后由 tty228 于 2023-6-24 23:38 编辑

如果你的证书无误的话,把 listen 8443 ssl; 的监听端口改为默认的 443,或者关闭 socat 上的端口转发,打开防火墙 8433 端口
应该都能通过 https://xxx:84330访问
你应该先确定内网可以正常访问 https 再进行以上操作,如果内网无法访问,检查证书或者 ssl 依赖

然后我没用过 nginx ,总觉得这一行怪怪的 proxy_pass http://localhost:8090;
反向代理用的吧
如果还是不行,建议恢复默认值重新设置
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-6-24 23:27 | 显示全部楼层
也是通过docker部署nginx-proxy-manager:https://zhuanlan.zhihu.com/p/465925053
在dockerman里的允许端口,选 https 的端口
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-5-30 12:50

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表