Answers:
使用firewall-cmd
命令。
假设您要在默认区域将防火墙打开到OpenVPN,请执行以下命令。如果在非默认区域上运行它,则将其添加--zone=<zone>
到命令中。
注意:如果您将默认public
区域用于外部网络适配器,则回送接口也可能被伪装(取决于firewalld
您所运行的版本),如果您正在运行可访问的服务(例如mySQL),则可能导致问题本地。
首先,列出当前打开的内容:
# firewall-cmd --list-services
http https ssh
接下来,添加openvpn
服务:
# firewall-cmd --add-service openvpn
success
快速检查:
# firewall-cmd --list-services
http https openvpn ssh
以上将允许openvpn
工作,您现在可以对其进行测试。但是,它不会持续重启。要使其永久存在,请添加以下--permanent
选项:
# firewall-cmd --permanent --add-service openvpn`
success
请注意,最后一个命令直到下一次重新启动后才打开端口,因此您需要同时使用这两个命令。
最后,添加化妆舞会:
# firewall-cmd --add-masquerade
success
并在重新启动后使其永久不变:
# firewall-cmd --permanent --add-masquerade
success
确认它:
# firewall-cmd --query-masquerade
yes
请注意,如果传入的OpenVPN连接与面向Internet的连接位于不同的区域,则伪装应该位于后者上,并且您需要--zone=<zone>
在--add-masquerade
命令中使用该选项。
/lib/firewalld/services/
。就您而言,它将openvpn.xml
位于该目录中。用户定义的服务进入/etc/firewalld/services
。请注意,openvpn的默认端口是UDP/1194
。
public
区域,则它会伪装回送接口。原来,我之前将默认区域设置为external
,所以从未遇到过您遇到的问题。尝试将服务和适配器移至另一个区域,以查看是否有帮助。让我知道:-)