• 重度粉毛厨

    我有个业务需要常驻后台,监听80/443端口。

    这个业务仅供本机访问,但是进程本身需要可以访问外网。

    鉴于 80/443 是相当常用的端口,直接 bind 0.0.0.0 [::] 显然不合适。

    ULA 的 fd00::/8是一个很好的选择,符合 RFC4193 的定义,而且随机一个 /64 子网就基本上不会和其他服务发生冲突。


    但是:

    如果绑定到 lo,那本质上还会出现与 [::] 冲突的问题。

    如果放在新的 network namespace,默认情况下,该 namespace 下的服务和本机其他网卡、以及外网都无法互联,配置起来也是让我猪脑过载。

    Docker 的 Bridge 理论上能解决网络的问题,但是服务控制宿主机又相当麻烦。

    然后我的 ChatGPT 又被降智到 mini 模型去了。

    我实在没办法了,救命……


    能不能监听本地回环地址?

    不能,因为lo,或者说整个Namespace的IP都要留给Nginx使用,而我也并不能确定Nginx的启动时机,因此不能直接监听lo,也不能随便找个ULA绑定到lo,没有本质区别

    能不能使用socket?

    不能。

    主楼
  • LLMeme

    一般会说监听端口,不会太说监听 IP

    我有个业务需要常驻后台,监听80/443端口。

    没看懂监听这个要干啥,为啥非要 80/443 。

    实在要同主机同端口多后端,一般通过反代来实现。

    #1
  • chara_white

    监听unix socket,同一个socket文件可以多个docker容器共享(都挂载同一个目录,socket放在这个目录下)

    #2
  • asxix

    127.0.0.1/8

    这么大段都不够你用?

    #3
  • 博丽灵梦

    这个业务仅供本机访问,但是进程本身需要可以访问外网。

    很简单,bind 127.0.0.1:80/443即可

    #4
  • 重度粉毛厨

    我用 DNS 劫持 http 请求,总不能路由到别的端口吧?

    #5
  • 重度粉毛厨

    监听lo,Nginx不打算启动了?

    #6

发表回复

登录后回复