
Я новичок в брандмауэре Windows. Я видел этот диалог и не могу понять его значение.
В приведенном выше диалоговом окне говорится, что«Разрешить Python общаться в этих сетях:». Затем он предоставляет два флажка, один для каждой частной сети и один для публичной сети.
Итак, мои вопросы:
В чем разница между частной сетью и публичной сетью? К какой из этих сетей относится интернет?
В чем смысл разрешения программе общаться в данной сети?
Давайте рассмотрим это с точки зрения как Клиента, так и Сервера:
Если программа (действующая как клиент) пропущена через брандмауэр в данной сети (публичной/частной), означает ли это, что она может устанавливать сокет-соединение с другими компьютерами в той же сети?
Если программа (действующая как сервер) разрешена через брандмауэр, означает ли это, что она может принимать сокетные соединения от других компьютеров в той же сети?
Как можно заставить программу либо прослушивать соединения, либо устанавливать их?
Под этим я подразумеваю, как я могу контролировать, чтобы любой программе Python (
python.exe
) не было разрешено прослушивать соединения?
решение1
Разница между ними заключается в уровне доверия, который Windows им оказывает. Оба ониЛокальная сетьs. Например, вы можете считать «частную сеть» Windows домашней сетью, а публичную — точкой доступа Wi-Fi в кафе. Windows ведет себя по-разному в публичной и частной сети (см.здесь). Интернет не «принадлежит» локальной сети; локальная сеть может быть подключена к Интернету.
Разрешение программе общаться в данной сети в Windows означает включение правил брандмауэра, чтобы позволить ей подключаться к другой машине или прослушивать соединения других машин через эту сеть. Это означает, что она может устанавливать соединения через сокеты, да, но не только от или к машинам из той же сети, если локальная сеть подключена к другим сетям (например, к Интернету). Однако исходящий или входящий трафик обычно являются разными правилами брандмауэра, поэтому вам следует проверить, какие из них вы хотите включить/отключить.
Как указано выше, вы можете настроить свой брандмауэр для подключений тем или иным способом. Кроме того, прослушивание порта может потребовать привилегий, поэтому вам следует проверить, какие из них необходимы для блокировки программ.
решение2
1. Частная и публичная сеть
Они предназначены в основном для использования на роуминговых машинах. Всякий раз, когда вы подключаетесь к новой сети, Windows попросит вас указать тип вашей сети (частная/корпоративная/публичная). Это позволяет настроить брандмауэр с различным набором правил в зависимости от того, к какому месту вы подключаете свою машину.
Текущий тип сети должен быть указан в панели управления сетью, а также в надстройке консоли брандмауэра (см. 3.)
2. Связи
Обычно сети "принять подключение от" и "установить подключение к" должны быть разделены. Я думаю, если помните, они находятся в политиках Windows, и ОС спросит вас, нужны ли ей оба разрешения. Они известны как "входящие правила" и "исходящие правила".
3. Расширенные правила/проверка
Правила можно найти в надстройке консоли брандмауэра wf.msc
.
решение3
Сначала о брандмауэре. Это просто шлюз, и по умолчанию он закрыт. Никакое соединение не входит и не выходит. Вы можете вручную настроить его, чтобы разрешить открытие определенных портов. Некоторые программы откроют нужные им порты и выдадут вам запрос, аналогичный вашему посту.
ЧАСТНЫЕ и ПУБЛИЧНЫЕ сети — это ваши профили брандмауэра «по умолчанию». Обычно вы выбираете Частный или Публичный каждый раз, когда подключаетесь к новой сети, например, когда подключаетесь к новому WiFi.
Какой бы профиль вы ни выбрали для Python, он определит его удобство использования. Если вы разрешите ему подключаться только в вашей частной сети, то при работе в публичных сетях Python не сможет устанавливать соединения.
Будет ли он устанавливать соединения клиент/сервер?
Да(если он запрограммирован на это).Выбор профиля Private или Public не влияет на то, что Python открывает порты для себя. Он откроет порты для вашего соединения.Просто если вы выберете Private, эти соединения будут открыты только если вы в вашей Private сети и закрыты, если вы в Public сети. С другой стороны, если вы выберете Public, Python будет устанавливать эти соединения независимо от того, какое сетевое соединение вы используете.
Вы можете управлять Python из настроек брандмауэра.