Передача (клиент Gnome BitTorrent) и брандмауэр на Debian 10

Покопавшись в исходном коде и стандарте POSIX, я бы сказал, что ответ @antje -m и @Gilles в основном правильный.

В качестве резюме стоит процитировать комментарий из POSIX.1 -2008 :

The use of 512-byte units is historical practice and maintains compatibility with ls and other utilities in this volume of POSIX.1-2008. This does not mandate that the file system itself be based on 512-byte blocks. The -k option was added as a compromise measure. It was agreed by the standard developers that 512 bytes was the best default unit because of its complete historical consistency on System V (versus the mixed 512/1024-byte usage on BSD systems), and that a -k option to switch to 1024-byte units was a good compromise. Users who prefer the more logical 1024-byte quantity can easily alias df to df -k without breaking many historical scripts relying on the 512-byte units.

Для размера блока вls -s:

POSIX говорит , что размер блока по умолчанию определяется реализацией -, если не задана опция -k.

Размер блока по умолчанию, реализованный в GNU coreutilsls, определяется в GNU gnulib:.gnulib/lib/human.c

/* The default block size used for output.  This number may change in
   the future as disks get larger.  */
#ifndef DEFAULT_BLOCK_SIZE
# define DEFAULT_BLOCK_SIZE 1024
#endif

который взят из старой фиксации:

commit 96e78d1f64d7c8d2acc5ad27dc3e73b96ae80585
Author: Jim Meyering 
Date:   Mon Jun 29 15:23:04 1998 +0000

В самом сообщении фиксации ничего не говорилось о числе 1024.

И обратите внимание, что размер блока, используемый в duи df, также равен 1024, lsпросто решил соответствовать им. Хотя для duи dfэто конфликт со стандартом POSIX (, поэтому здесь переменная окружения POSIXLY_CORRECTидет ). Похоже, это решение команды GNU, см. страницу википедии POSIX об этом противоречии.

Для команды stat.

Это не часть стандарта POSIX, ноstatсистемный вызов . Однако единица измерения размера блока не стандартизирована(sys _stat.h):

The unit for the st_blocks member of the stat structure is not defined within POSIX.1-2008.

Команда statпросто отображает информацию, предоставленную системным вызовом stat, и использует размер блока 512 с некоторыми исключениями (, они не -Linux, например. HP -UX, IBM AIX и т. д. см. макросы, определенные в gnulib/lib/stat-size.h).

Таким образом, число 512 является скорее историческим выбором и соглашением Linux.

GNU coreutils(, следовательно, команда ls)не является частью ядра Linux (, следовательно, вызов stat), они нацелены на другой системный аспект, GNU coreutilsбольше для человека (легче читать ), а ядро ​​Linux для абстрактного оборудования (, следовательно, ближе к оборудованию ).

Изменить :Размер блока 4096 — это размер блока ввода-вывода, реальный физический размер блока, вероятно, по-прежнему составляет 512 байт , как объясняется в этом вопросе .

0
25.09.2019, 17:24
1 ответ

Во-первых, на той же вкладке «Сеть» окна «Настройки» убедитесь, что флажок «Выбирать случайный порт каждый раз при запуске передачи» не установлен. Также проверьте, какой порт прослушивания установлен. Номер порта по умолчанию — 51413.

В брандмауэре разрешите указанный выше номер порта TCP. Поскольку вы используете firewalld, вы можете разрешить порт 51413, разрешив названную службу «клиент передачи -».

Если ваш маршрутизатор поддерживает NAT -PMP или если вы настроили маршрутизатор с ручной переадресацией портов, это все, что вам нужно! Передача теперь будет работать с вашим брандмауэром.

NAT -PMP доступен на маршрутизаторах Apple. Так же он есть на любом толково написанном роутере с последней версией открытого MiniUPnPd. Это прекрасно работает на маршрутизаторах OpenWRT :-).

Или, если вам нужна поддержка IPv6 (текущей версии IP :-), просто притворитесь, что я сказал NAT -PCP вместо NAT -PMP.

В противном случае вы, вероятно, использовали переадресацию портов uPnP. Это проблема, извините.Если вы не хотите вручную настраивать переадресацию портов на своем маршрутизаторе, на этой странице есть несколько возможных способов:Брандмауэр Fedora с UPnP?

Ужасные способы разрешить uPnP, которые вам не следует использовать

1. служба firewalld "upnp -клиент"

firewalldимеет именованную службу «клиент upnp -». Разрешение этой службы может позволить Transmission работать. Но разрешение этой службы означает, что злоумышленник может обойти брандмауэр для любого UDP-порта, если он осуществляет передачу с UDP-порта 1900.

Служба firewalldдля «клиента upnp -» определяется с помощью <source-port... />. Это отличается от <port... />, который используется в большинстве определений службы firewalld. По этому поводу есть заявление об отказе от ответственности в скобках, но интерфейс firewalldне показывает его.

$ cat /usr/lib/firewalld/services/upnp-client.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>UPnP Client</short>
  <description>Universal Plug and Play client for auto-configuration of network routers (use only in trusted zones).</description>
  <source-port port="1900" protocol="udp"/>
</service>

2. миниссдпд

В предыдущей версии Debian при установке Transmission автоматически устанавливался minissdpd. Передача может использовать minissdpdдля получения ответов uPnP, и это лучше работает с брандмауэром. Если вы разрешите UDP-порт 1900 в брандмауэре, Transmission сможет настроить перенаправление портов uPnP.

Проблема в том, что minissdpd представляет большую угрозу безопасности.

minissdpdнеобходимо настроить со списком имен сетевых интерфейсов, на которых он должен работать. Debian предложит список по умолчанию. Обязательно внимательно проверьте это, если у вас есть несколько возможных сетевых интерфейсов, например. как Wi -Fi, так и проводной Ethernet.

После запуска minissdpdне забудьте разрешить UDP-порт 1900 в брандмауэре, а затем перезапустите передачу.

Я заметил, что этот подход не работает в Fedora Linux. minissdpdнедоступен в Fedora, и Fedora не создает Transmission с поддержкой libminiupnp.

1
28.01.2020, 02:39

Теги

Похожие вопросы