После обновления Synergy до Fedora 18 система совместного использования клавиатуры была заблокирована по умолчанию. Виновником был firewalld, который благополучно проигнорировал мои предыдущие настройки, сделанные в графическом интерфейсе Fedora при поддержке 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
Кроме того, сообщения, которые утверждали, что эта команда работала, также указали, что она временная и не выдерживает перезагрузки. Я закончил тем, что добавил файл в каталог конфигурации, который будет загружаться при загрузке.
Сможет ли кто-нибудь взглянуть на это и увидеть, пропустил ли я что-нибудь? Хотя синергия работает, когда я запускаю команду list, я не получаю результата:
~]$ sudo firewall-cmd --zone=internal --list-services
ipp-client mdns dhcpv6-client ssh samba-client
~]$ sudo firewall-cmd --zone=internal --list-ports
~]$
После прочтения man firewall-cmd
Я побежал;
sudo firewall-cmd --permanent --add-port=24800/tcp
и перезагрузка сделала свое дело
Вот как открыть порт с помощью firewalld. Я не нашел графического интерфейса, подобного старой программе Firewall, и понял, что 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>
Я сохранил файл, перезапустил firewalld, и мое приложение Synergy снова заработало.
~]$ sudo service firewalld restart
Я не использую другие службы слишком часто, но у меня есть общая папка, и я могу войти в систему один раз в синюю луну, поэтому id не удосужился стереть остальные.
Чтобы он прижился, я также изменил файл 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>