Беспроводная связь не работает, если для Ethernet настроен статический IP-адрес

Не уверен, что grepявляется требованием для этого случая, но с помощью perlвы можете сделать что-то подобное, чтобы удалить ненужные элементы:

perl -pe 's/, ?[2-9]\d*\|\d+:\d+//g; s/, ?\d+\|[2-9]\d*:\d+//g' /path/to/file.csv
0
09.12.2020, 20:05
1 ответ

Хорошие новости:Это работает!

Еще лучшие новости :Работает, как и ожидалось !!!

Плохие новости :Вы лжёте!!!;-)

Или у вас несколько проблем...

Я запросил дополнительную информацию в комментарии, но вы не объяснили, как вы ожидаете, что ваши пакеты будут маршрутизироваться. Это может показаться вам тривиальным, но вопрос на самом деле предназначался для намека на возможный ответ.

Проблема 1 :Ассоциация WPA

Вы должны знать о WPA и о том, как его настроить, так как иногда он работает. Мы видим, что это работает так, как ifconfigговорит:

status: associated

Если WPA по какой-то причине не работает, вы увидите:

status: no carrier

Это волшебное заклинание(ifconfig_wlan0="WPA DHCP"/etc/rc.confпредписывает сетевой подсистеме запускать wpa _supplicant , а затем dhclient при работе с wlan0. DHCP (dhclient )не сможет получить IP-адрес, если мы не связаны (wpa _запрашивающим )с беспроводной сетью.

Нет необходимости перезапускать все интерфейсы. Вы можете указать, какой из них вы хотите.

service netif restart wlan0

Чтобы отладить это, нам нужно запустить wpa_supplicantв режиме отладки -dс правильным -cконфигурационным файлом:

wpa_supplicant -i wlan0 -d -c /etc/wpa_supplicant.conf

Если вы получили сообщение об ошибке, что программа уже запущена, сначала выключите wlan0. Вы можете проверить это с помощью:

ps -ax | grep wpa
ps -ax | grep dhclient

Вы могли подумать:

service netif stop wlan0

Но это полностью удалит интерфейс. Вместо этого просто отключите его (, что остановит запрос WPA и DHCP ).

ifconfig wlan0 down

Когда вы закончите отладку, снова включите его с помощью:

ifconfig wlan0 up

Другой вариант — закомментировать ifconfig_wlan0="WPA DHCP"и перезапустить интерфейс (или перезагрузить ). Затем вы можете запустить wpa _supplicant на переднем плане для отладки.

Однако я не думаю, что у вас есть проблемы с этим, и это ваша «ложь» (мы вернемся к этому ниже ). Однако, если у вас есть проблемы с медленным и не совсем стабильным интерфейсом, вы можете получить что-то вроде этого в/etc/rc.conf

ifconfig_wlan0="-ht WPA SYNCDHCP powersave"

Я использую это на своем ноутбуке с беспроводным адаптером iwn, у которого периодически возникают проблемы с подключением.

-htотключает «Высокую пропускную способность (HT )», см. ifconfig . SYNCDHCPзаставляет запуск ждать, пока dhclient не вернется. Это гарантирует, что сеть готова, прежде чем продолжить.

Когда мы убедимся, что WPA работает правильно, мы можем отправиться в город dhclient. Но я сомневаюсь, что проблема здесь.

Проблема 2 :Маршрутизация

netstat -4rnпоказывает нам таблицу маршрутизации. Вы просто утверждаете, что это "не работает". Но вы ничего не делаете, чтобы проиллюстрировать, что не работает и чего вы ожидали. Затем мне нужно сделать кучу предположений.

Итак, мои предположения таковы:

  • Беспроводная сеть работает в обоих случаях
  • Предполагается, что вы сможете подключаться к Интернету по беспроводной сети.

А вот и ложь :Во втором сценарии вы утверждаете status: no carrierбез inetс ifconfig, но затем ваш netstat -rпоказывает:

192.168.1.0/24     link#3             U         wlan0
192.168.1.129      link#3             UHS         lo0

Итак, стек маршрутизации знает о сети 192.168.1.0/24 на wlan0, и у вас есть адрес (.129 )в этой сети.

И если мы посмотрим на netstat (1)флаги:

H    RTF_HOST      Host entry (net otherwise)   
S    RTF_STATIC    Manually added
U    RTF_UP        Route usable

Нам прямо сообщают, что маршрут можно использовать. Это не соответствует ifconfigбез строки inet.

WPA и DHCP работают асинхронно в фоновом режиме. Возможно, вы отправили ifconfigслишком рано. С этой таблицей маршрутизации ваш ifconfigбудет выглядеть иначе. Следуйте /var/log/messages, чтобы увидеть, что произойдет. И еще хуже, если вы используете service netif restartпри добавлении IP-адреса. Это приведет к перезапуску всех сетевых интерфейсов. Затем вы должны подождать, пока dhclient освободит адрес, а запросчик wpa _отключится. Затем он снова запустится -, нужно связать, а затем получить новый адрес. Это может занять довольно много времени! Если вы просто установите IP для re0в /etc/rc.conf, перезапустите этот интерфейс только с помощью service netif restart re0.

Поскольку вы используете адреса RFC 1918 для re0и статически назначаете 10.0.0.1 (, как правило, шлюз )этому интерфейсу, я предполагаю, что это локальная сеть, ни к чему не подключенная. еще. Возможно. Это будет просто менее распространенная конфигурация.

В первом примере вы установили DHCP. Сервер недоступен, поэтому адрес не задан. Мы не можем направить что-либо на этот интерфейс без адреса. Тогда «удача» заключается в том, что он отправляется через другой доступный интерфейс.

Во втором примере я работаю с предположением, что беспроводная сеть работает, и теперь вы определили 2 сети:

10.10.10.0/24
192.168.1.0/24

Я почти уверен, что вы сможете пропинговать эти адреса:

ping 127.0.0.1
ping 10.0.0.1
ping 192.168.1.129
ping 192.168.1.1

Но вы не показали нам, как вы тестируете, так что нам остается только гадать.Если какой-либо из них дает сбой, они дают нам ценную информацию для отладки.

Если 127.0.0.1 не работает, у вас проблема со стеком IP/брандмауэром. Если 10.0.0.1 не работает, это чаще всего связано с брандмауэром (, но не с pf, или я предполагаю, что здесь проблема с iptables ), так как это наш собственный адрес в нашей локальной сети. Если бы мы знали другой адрес 10.0.0.x (, так как у нас есть локальный адрес /24 ), мы могли бы подтвердить, что сеть работает. То же самое с 192.168.1.129 -это наш собственный адрес и должен работать. Действительно интересным является адрес 192.168.1.1, который должен быть нашим маршрутизатором в беспроводной сети. Если это работает, мы знаем, что также можем подключиться к этой сети. В редких случаях его можно настроить так, чтобы он не отвечал на запросы ping (ICMP ECHO ), но это бывает редко. И мое предположение, кроме того, что это работает.

Теперь давайте попробуем забавную часть -связь с остальным миром. Из того, что вы показали, я предполагаю, что вы получите:

$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
ping: sendto: No route to host

Тогда это будет нашим неопровержимым доказательством. Мы определили, что можем достичь 10.0.0.0/24 и 192.168.1.0/24, поскольку знаем, где находятся эти сети. Но как ваш компьютер должен знать, куда отправить остальные?

Если мои теперь очень высокие предположения верны, нам просто нужно знать, куда мы хотим отправлять все пакеты, которые не являются известными локальными сетями. Мы можем добавить маршрут по умолчанию в/etc/rc.conf

defaultrouter="192.168.1.1"

Когда вы установите маршрут по умолчанию, вы заметите, что он указан как defaultпод Destinationв таблице маршрутизации (netstat -4rn)

.

Если вы хотите, чтобы ваш компьютер работал в качестве маршрутизатора для 10.0.0.0/24 в вашей проводной сети, чтобы он мог подключаться к Интернету по беспроводной сети, вам это также необходимо:

gateway_enable="YES"

Подробнее о маршрутизации можно прочитать в руководстве по FreeBSD 31.2. Шлюзы и маршруты

Задача 3 :Ваши предположения

Вы приравниваете netifк /etc/netstart.Загляните внутрь netstartи посмотрите, насколько он прост -, но сколько всего он делает. Поскольку я предполагаю, что ваша проблема связана с маршрутизацией, вам действительно нужно:

# service netif restart
# service routing restart

Настоящий урок

Я долго отвечал на этот вопрос. Я этого не делал, потому что это интересный вопрос. Но я хотел приложить усилия, потому что ОП приложил усилия, чтобы обновить вопрос.

Это очень типичный простой вопрос об устранении неполадок, который у многих здесь возникает. Затем я хотел показать, какие шаги я прошел, чтобы ответить на этот вопрос. Может быть, мне повезло, и я угадал правильно. Но, надеюсь, понятно, сколько предположений и догадок мне понадобилось. Всего этого можно было бы избежать, если бы вопрос был поставлен более тщательно.

Уроки, которые следует усвоить:

  • Не просите людей отвечать на вопрос, основанный на ваших собственных предположениях.
  • Четко определите, что работает, а что нет. Четко укажите, как вы тестируете и какой результат вы ожидаете
  • Покажите точные действия по устранению неполадок.
  • Не выбирайте настройки на основе того, что вы считаете важным (, т.е. /etc/rc.conf)

Обратите внимание, как два разных человека запрашивают дополнительную информацию. Как мало информации вы предоставили заранее. А при обновлении вы даже не предоставили все что просят. Чем больше времени вы потратите на свой вопрос, тем больше времени люди потратят на ответ.

2
18.03.2021, 22:44

Теги

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