解出 --参见下面的更新。
我在服务器上安装了outline-server (链接),不幸的是,FirewallD删除了来自outline-client的所有数据包。
我的系统:
Ubuntu 18.04 x64
Linux x 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/LinuxFirewallD版本:0.4.4.5
码头版本:Docker version18.05.0-ce, build f150324
FirewallD规则:
root@x:~# firewall-cmd --get-active-zones
public
interfaces: ens3 docker0
root@x:~# firewall-cmd --list-ports
{outline_server_port}/tcp {outline_server_port}/udp在这个链接上的答案也没有帮助。
Outline-Manager工作得很好,例如:我可以创建键并成功地连接,但是Outline客户端给出了以下错误:
发生了网络错误。如果再次发生这种情况,请提交反馈。
当我使用以下命令停止FirewallD时:
systemctl stop firewalld.service
大纲-客户端工作正常,当我启动FirewallD时,它不再工作了。
以下是来自FirewallD状态的
root@x:~# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-05-15 23:37:31 CEST; 8s ago
Docs: man:firewalld(1)
Main PID: 2479 (firewalld)
Tasks: 2 (limit: 1113)
CGroup: /system.slice/firewalld.service
└─2479 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid
May 15 23:37:31 x systemd[1]: Starting firewalld - dynamic firewall daemon...
May 15 23:37:31 x systemd[1]: Started firewalld - dynamic firewall daemon.
May 15 23:37:32 x firewalld[2479]: WARNING: COMMAND_FAILED: '/sbin/iptables -w2 -t filter -n -L DOCKER-USER' failed: iptables: No chain/target/match by that name.
May 15 23:37:32 x firewalld[2479]: WARNING: COMMAND_FAILED: '/sbin/iptables -w2 -t filter -C DOCKER-USER -j RETURN' failed: iptables: Bad rule (does a matching rule exist in that chain?).
May 15 23:37:32 x firewalld[2479]: WARNING: COMMAND_FAILED: '/sbin/iptables -w2 -t filter -C FORWARD -j DOCKER-USER' failed: iptables: No chain/target/match by that name.我让
firewall-cmd --add-masquerade)vim /etc/sysctl.conf & net.ipv4.ip_forward=1)现在我的问题是:如何配置FirewallD以允许大纲-客户端数据包?
非常感谢。
轮廓使用码头。
更新2018.05.16:
该问题存在于outline为每个新的密钥AKA客户端在docker容器中创建的唯一端口中,因此要修复该问题,请执行以下操作:
运行以下命令(非常感谢@abe)
ss -tlp现在,将显示所有ss-服务器及其相关端口,例如,我的服务器如下所示:
root@dockerTest:~# ss -tlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:12615 0.0.0.0:* users:(("ss-server",pid=1162,fd=5))
LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:* users:(("systemd-resolve",pid=617,fd=13))
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* users:(("sshd",pid=824,fd=3))
LISTEN 0 128 [::]:ssh [::]:* users:(("sshd",pid=824,fd=4))
LISTEN 0 128 *:47515 *:* users:(("node",pid=1103,fd=12)) 现在,从输出中可以看到,ss-server使用端口"12615",我们应该在FirewallD中允许这个端口。为此,运行以下命令:
firewall-cmd --add-port=12615/tcp
firewall-cmd --add-port=12615/udp检查大纲-客户端,它应该连接。
如果一切正常工作,请运行以下命令,以使更改永久化
firewall-cmd --add-port=12615/tcp --permanent
firewall-cmd --add-port=12615/udp --permanent“非常感谢,”亚伯说,“我非常感谢你的帮助。
发布于 2018-05-15 23:55:03
将http或https端口添加到firewalld如何?
firewall-cmd --add-service=https --permanent我认为jason是一个web应用程序,所以客户端连接到服务器
http或https协议。
https://unix.stackexchange.com/questions/444025
复制相似问题