We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
现在的高级多端口映射步骤有点过于繁琐,不便于给同一个服务或IP映射多个端口(需要编写冗长的配置段) 可以通过增加几个配置项来做简化
[[endpoints]] listen_addrs = ["0.0.0.0", "[::]"] remote_addrs = ["a.a.a.a", "b.b.b.b"] # 或 remote_addr = "a.a.a.a" listen_ports = ["80", "8080"] remote_ports = ["8080", "80"]
在程序添加配置时,对这四个键值对的值是否存在做下判断,如果存在则忽略原本的一对一映射,转而使用“多端口对多端口”或“多端口对单端口”的映射逻辑 如果有意支持远端负载均衡,则 remote_addrs 是字符串数组,否则使用 remote_addr 字符串代替(一般比较少人需要负载均衡,故不一定需要实现)
若 remote_ports 的端口数等于1,则进行 N 对 1 端口映射,将 listen_addrs 所列所有 IP 地址指定的 listen_ports 都映射到 remote_addr(s) 唯一的远端端口上 若 remote_ports 的端口数等于 listen_ports 的端口数,则进行一对一的端口映射,将 listen_addrs 所列所有 IP 地址指定的 listen_ports 按配置文件手动编写的数组阅读顺序,一一映射到 remote_addr(s) 所列远端端口上(此例为:80->8080,8080->80) 若 remote_ports 的端口数不等于上述两个值,则报错提示
当然可以借鉴 docker,进行扩展: 例如: 监听端口 ["80", "8080/tcp", “10001-10005/tcp”] 则表示监听的是 TCP 端口,所对应的映射端口 ["80", "8080", "10001-10005"] 也就默认都是 TCP 端口 或者 ["80", "843/udp"] 则映射到 [“80/tcp”, "843/udp"] 亦或 ["443/both"] 则同时进行 443/tcp -> 443/tcp 和 443/udp -> 443/udp 映射
这样可以在配合network使用时,方便的配置哪些 TCP/UDP 端口需要映射,而不是全部映射
network
[network] no_tcp = false use_udp = true
The text was updated successfully, but these errors were encountered:
个人认为配置文件语法格式再多,表达能力也终究有限。 把这些语法硬编码进项目也是件费劲的事情..
最好还是请用户自行编写配置文件生成脚本,以满足个性化需求
Sorry, something went wrong.
No branches or pull requests
现在的高级多端口映射步骤有点过于繁琐,不便于给同一个服务或IP映射多个端口(需要编写冗长的配置段)
可以通过增加几个配置项来做简化
在程序添加配置时,对这四个键值对的值是否存在做下判断,如果存在则忽略原本的一对一映射,转而使用“多端口对多端口”或“多端口对单端口”的映射逻辑
如果有意支持远端负载均衡,则 remote_addrs 是字符串数组,否则使用 remote_addr 字符串代替(一般比较少人需要负载均衡,故不一定需要实现)
若 remote_ports 的端口数等于1,则进行 N 对 1 端口映射,将 listen_addrs 所列所有 IP 地址指定的 listen_ports 都映射到 remote_addr(s) 唯一的远端端口上
若 remote_ports 的端口数等于 listen_ports 的端口数,则进行一对一的端口映射,将 listen_addrs 所列所有 IP 地址指定的 listen_ports 按配置文件手动编写的数组阅读顺序,一一映射到 remote_addr(s) 所列远端端口上(此例为:80->8080,8080->80)
若 remote_ports 的端口数不等于上述两个值,则报错提示
当然可以借鉴 docker,进行扩展:
例如:
监听端口 ["80", "8080/tcp", “10001-10005/tcp”] 则表示监听的是 TCP 端口,所对应的映射端口 ["80", "8080", "10001-10005"] 也就默认都是 TCP 端口
或者 ["80", "843/udp"] 则映射到 [“80/tcp”, "843/udp"]
亦或 ["443/both"] 则同时进行 443/tcp -> 443/tcp 和 443/udp -> 443/udp 映射
这样可以在配合
network
使用时,方便的配置哪些 TCP/UDP 端口需要映射,而不是全部映射The text was updated successfully, but these errors were encountered: