Open zyystudio opened 5 months ago
当前设计为单个 Natter 进程仅负责单个端口,通过上层管理程序(如 Docker, Supervisor 等等)发起多个 Natter 进程实现多个端口的映射。
这种设计有以下考虑:
-p
选项有多个端口时,-b
必须绑定多个端口,另外其他选项例如 -u
UDP 模式,-i
绑定网络接口,-e
通知脚本等等是否共用,还是同样支持分开设置是不确定的,这可能会带来语义上的模糊;因此推荐使用上层管理程序。比如参考下方 Supervisor 配置:
[program:natter-web]
command = python3 natter.py -p 80
directory = /opt/natter
autostart = true
autorestart = true
[program:natter-web2]
command = python3 natter.py -i eth1 -p 8080
directory = /opt/natter
autostart = true
autorestart = true
[program:natter-qb]
command = python3 natter.py -m iptables -e ./qb.sh
directory = /opt/natter
autostart = true
autorestart = true
使用 Supervisor 还可以单独控制单个端口的启用和关闭,非常灵活。
谢谢回复。可以考虑程序生成类似配置文件,保持natter简洁。 请问如果docker里面的话如何像你那样更为优雅的配置下一串逗号分割的端口? 我是unraid的nas上跑docker或者openwrt里的docker都类似。
下方 Docker 参数中:
--net=host
使用主机网络(必须);--name=
用于命名;创建:
docker create --net=host --name=natter_21 nattertool/natter -p 21
docker create --net=host --name=natter_80 nattertool/natter -p 80
启用:
docker start natter_21
docker start natter_80
停止:
docker stop natter_21
docker stop natter_80
查看日志:
docker logs natter_21
docker logs natter_80
删除:
docker rm natter_21
docker rm natter_80
使用 docker-compose.yml
配置文件(一般配合目标应用一起写,当然也可以把需要 Natter 映射的端口都写在一起):
https://github.com/MikeWang000000/Natter/blob/master/natter-docker/nginx/docker-compose.yml
具体请阅读文档: https://github.com/MikeWang000000/Natter/tree/master/natter-docker
多谢回复。有没有更为优雅的方式,比如说开10个端口,这样要10个dockercontainer。能否一个container包含10个端口呀?
可以把 Supervisor 打到镜像里面。
还不太懂也不太会 等后续 pcdn有需要的
我看文档都是-p后面跟着一个端口比如80,可以增加feature一串逗号分割的端口列表么?