Как настроить IP-адреса в командной строке для подключения к сети без использования dhclient

4

Что я делаю, чтобы подключиться к нашей беспроводной сети:

  • бежать sudo ifconfig wlan0 up
  • run wpa(скрипт, который вызывает wpa_supplicantвсе необходимые аргументы)
  • бежать sudo dhclient wlan0(это шаг, который мне не нравится)

Последний шаг, dhclientшаг, я хотел бы заменить статической IP-конфигурацией вместо получения ее с DHCP-сервера. Я знаю, что такое адрес шлюза, адреса DNS, IP-адрес и маска сети, но я не знаю, как установить их через командную строку. Является ли это возможным?

Если это имеет значение, я использую Fedora 18 x86_64.

PS IP-адрес установлен sudo ip addr add <ip-address> dev wlan0, верно?

BenjiWiebe
источник
Вы пытались установить его в своем ifcfg-wlan0? docs.fedoraproject.org/en-US/Fedora/15/html/Deployment_Guide/…
Фрэнк Томас,
Разве файлы ifcfg не используют NetworkManager? Я пытаюсь уйти от NetworkManager, так как NetworkManager работает неправильно. Вот почему я ищу "базовую" альтернативу командной строки.
BenjiWiebe
попробуйте это руководство wikihow.com/Assign-an-IP-Address-on-a-Linux-Computer
shouso_boy
И наоборот. эти файлы используются сетевым менеджером, если они есть, но так же, как и файл интерфейсов в системе на основе debian, их можно настроить вручную, если сетевой менеджер не используется. в моих системах Debian я настраиваю файл интерфейсов, а затем отключаю сетевой менеджер
Фрэнк Томас,
@shouso_boy Это именно то, что я искал! Это route add default via <gateway>то, что мне нужно! Спасибо!
BenjiWiebe

Ответы:

1

Вы можете добавить статический IP-адрес с помощью команды ip, но вам нужно также указать диапазон сети и маршрутизатор по умолчанию:

ip addr add 192.168.1.2/24 dev wlan0
ip route add default via 192.168.1.1

Без последующего шага у вас будет только подключение к вашей локальной сети. Вам также необходимо обновить ваш /etc/resolv.conf, указав правильный адрес сервера имен:

echo 'nameserver 8.8.8.8' >/etc/resolv.conf

Обратите внимание: если у вас работает какой-то сетевой менеджер или установлен пакет resolvconf, он может легко перезаписать ваши изменения.

Янош Пазтор
источник
Это работает, чтобы получить доступ к локальной сети, например ping 192.168.0.1, но не ping google.comили nslookup google.com. Мой resolv.conf есть nameserver 8.8.8.8в нем. ping 8.8.8.8работает, но ping google.comговорит ping: unknown host google.com.
BenjiWiebe
Попробуйте ping 8.8.8.8, если вы действительно можете получить доступ к открытым DNS-серверам Google. Если ваш resolv.conf настроен правильно и вы можете получить доступ к этим серверам, разрешение имен должно работать (если у вас нет более продвинутых вещей в вашей системе, таких как неправильно настроенный nsswitch.conf и т. Д.)
Janos Pasztor
Вот мой файл nsswitch.conf. (Я не настраивал это; я понятия не имею, что он делает; это по умолчанию). РЕДАКТИРОВАТЬ: я могу пинговать 8.8.8.8, а также я могу пинговать IP-адрес Google. Я все еще не могу ping google.comхотя. Это говорит ping: unknown host google.com.
BenjiWiebe
Nsswitch.conf выглядит довольно стандартно. Можете ли вы проверить с помощью tcpdump, действительно ли ваш компьютер отправляет пакеты DNS? (порт 53)
Янош Пазтор