前言
这两天在搭建个人nas,想顺便在局域网搭建一个dns服务器,我采用的是jpillora/dnsmasq的docker镜像搭建的,但是遇到一个问题始终无法解决容器端口必须大于9000,而dns使用的端口是53是改不了的,找了很多资料发现有老哥说,trueNas是trueNas采用的是k3s进行容器编排,然而k3s有限制容器端口必须大于9000,即使我把k3s配置改了,trueNas的容器配置依然无法修改到9000以下(这个好像是前端界面判断的)
说明
试了很多方法,改k3s配置,然后本来想找容器编排配置直接改端口号,无奈找了所有的数据集文件,都没找到那个具体是容器编排配置,而web面板始终无法改到9000以下,又找了很多方法,无意间看到issue里有一个大佬回复的,于是就试了下
https://github.com/truenas/charts/issues/2045
In most cases UDP will require hostNetwork.
9000 is the lower limit for NodePort when its used by kubernetes service.
Using hostNetwork bypasses that. This is why its recommended to only use hostNet only when required. (Like this case).
qBittorrent allows to change the internal (container) port that it listens to, so even with hostNet enabled, we can change the port that the container will bind on the host.
解决方案
找了一下配置面板,发现没有hostNetwork 和 NodePort 但是有Port Forwarding 和网络,我之前配置是配置在Port Forwarding 里进行端口转发,但是不能小于9000,看了一下网络,额 是网卡桥接,好家伙,想了一下这不是也能变相解决我的问题嘛,无非就是再分配一个宿主机同网关的ip嘛,而且还直接能在其他电脑访问这个ip很好用。
解决方法如下:
1.取消Port Forwarding 配置,
2.添加网卡桥接,如下图即可,可以设置一个静态ip防止ip租期过期后hdcp重新分配导致访问不到