如何通过firewalld启用synergy 24800(或其他端口)

如何通过firewalld启用synergy 24800(或其他端口)

升级到 Fedora 18 后,Synergy 键盘共享系统默认被阻止。罪魁祸首是防火墙,它欣然忽略了我之前在 Fedora GUI 中所做的设置,并由 iptables 支持。

~]$ ps aux | grep firewall
root      3222  0.0  1.2  22364 12336 ?        Ss   18:17   0:00 /usr/bin/python /usr/sbin/firewalld --nofork
david     3783  0.0  0.0   4788   808 pts/0    S+   20:08   0:00 grep --color=auto firewall
~]$ 

好的,那么如何解决这个问题呢?我这样做sudo killall firealld了几个星期,但每次重启时都很烦人。是时候寻找一些线索了。有几个单行代码,但对我不起作用。他们不停地吐出帮助文本。例如:

~]$ sudo firewall-cmd --zone=internal --add --port=24800/tcp
[sudo] password for auser: 
option --add not a unique prefix

此外,声称此命令有效的帖子也指出它是临时的,无法在重启后继续存在。我最终在配置目录中添加了一个文件,以便在启动时加载。

有人能看看这个并看看我是否遗漏了什么吗?虽然 synergy 有效,但当我运行 list 命令时,我没有得到任何结果:

~]$ sudo firewall-cmd --zone=internal --list-services
ipp-client mdns dhcpv6-client ssh samba-client
~]$ sudo firewall-cmd --zone=internal --list-ports
~]$

答案1

看完man firewall-cmd我就跑;

sudo firewall-cmd --permanent --add-port=24800/tcp

重启对我来说很有效

答案2

这是使用firewalld打开端口的方法。我没有找到像旧防火墙程序那样的GUI,并且意识到firewalld忽略了我之前的协同规则。

Firewalld 安装了一些默认配置文件,可用于允许服务或端口通过系统。

~]$ sudo ls -l /usr/lib/firewalld/zones
total 36
-rw-r-----. 1 root root 256 Feb 20 10:37 block.xml
-rw-r-----. 1 root root 293 Feb 20 10:37 dmz.xml
-rw-r-----. 1 root root 226 Feb 20 10:37 drop.xml
-rw-r-----. 1 root root 319 Feb 20 10:37 external.xml
-rw-r-----. 1 root root 400 Feb 20 10:37 home.xml
-rw-r-----. 1 root root 415 Feb 20 10:37 internal.xml
-rw-r-----. 1 root root 340 Feb 20 10:37 public.xml
-rw-r-----. 1 root root 179 Feb 20 10:37 trusted.xml
-rw-r-----. 1 root root 367 Feb 20 10:37 work.xml

我决定试用一下 internal.xml,将它从安装目录复制到 /etc/firewalld/ 中的加载目录,然后对其进行编辑以添加我的端口以实现协同作用。

~]$ sudo cp /usr/lib/firewalld/zones/internal.xml /etc/firewalld/zones
~]$ sudo vi /etc/firewalld/zones/internal.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Internal</short>
  <description>For use on internal networks. You mostly trust the other computers 
  on the networks to not harm your computer. Only selected incoming connections 
  are accepted.</description>
  <service name="ssh"/>
  <service name="ipp-client"/>
  <service name="mdns"/>
  <service name="samba-client"/>
  <service name="dhcpv6-client"/>
  <port port="24800" protocol="tcp"/>  <-- Here is my addition. 
</zone>

我保存了文件,重新启动了防火墙,然后我的协同应用程序重新上线。

~]$ sudo service firewalld restart

我并不经常使用其他服务,但我确实在这里有共享文件夹,并且可能偶尔登录一次,所以我没费心删除其他服务。

为了使其坚持下去,我还将firewalld.conf默认设置为内部。

~]$ sudo vi /etc/firewalld/firewalld.conf
# firewalld config file

# default zone
# The default zone used if an empty zone string is used.
# Default: public
DefaultZone=internal   <-- changed this line

总而言之,我认为这是一个相当容易编辑的配置。对于像我这样的新手来说,比 iptables 规则更容易理解。

我希望它能帮助您熟悉新版 Fedora。

更新:事实证明我输入了错误的添加命令。要使用临时添加端口或服务,请按如下方式操作:

~]$ sudo  firewall-cmd --add-port=24800/tcp
~]$ sudo  firewall-cmd  --list-all
internal
  interfaces: eth0
  services: ipp-client mdns dhcpv6-client ssh samba-client
  ports: 24800/tcp
  forward-ports: 
  icmp-blocks: 

您想要添加的内容,以 - 结尾附加到 --add 命令中。

现在我在手册页中还看到了一个永久选项。所以我尝试了一下:

~]$ sudo  firewall-cmd --permanent --add-port=24800/tcp
~]$ sudo  firewall-cmd --complete-reload
~]$ sudo  firewall-cmd  --list-all
internal
  interfaces: eth0
  services: ipp-client mdns dhcpv6-client samba-client ssh
  ports: 24800/tcp
  forward-ports: 
  icmp-blocks: 

到目前为止一切顺利。重启后,我将看到我拥有的内容。同时,我发现区域目录中发生了变化:

~]$ sudo ls /etc/firewalld/zones
internal.xml  internal.xml.old
~]$ sudo cat /etc/firewalld/zones/internal.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Internal</short>
  <description>For use on internal networks. You mostly trust the other computers on the networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ipp-client"/>
  <service name="mdns"/>
  <service name="dhcpv6-client"/>
  <service name="samba-client"/>
  <service name="ssh"/>
  <port protocol="tcp" port="24800"/>
</zone>

相关内容