GNU/Linux
конфигурация сети
Поиск…
Вступление
Информация о интерфейсе
Ifconfig
Перечислите все интерфейсы, доступные на машине
$ ifconfig -a
Перечислите детали определенного интерфейса
Синтаксис: $ ifconfig <interface>
Пример:
$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.x
inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4426618 errors:0 dropped:1124 overruns:0 frame:0
TX packets:189171 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:382611580 (382.6 MB) TX bytes:36923665 (36.9 MB)
Interrupt:16 Memory:fb5e0000-fb600000
Ethtool - запрос настроек сетевого драйвера и оборудования
Синтаксис: $ ethtool <interface>
Пример:
$ ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on (auto)
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
ip-show / манипулировать маршрутизацией, устройствами, маршрутизацией политики и туннелями
Синтаксис: $ ip { link | ... | route | macsec }
(см. man ip
для полного списка объектов)
Примеры
Список сетевых интерфейсов
$ ip link show
Переименуйте интерфейс eth0 в wan
$ ip link set dev eth0 name wan
Принесите интерфейс eth0 вверх (или вниз)
$ ip link set dev eth0 up
Список адресов для интерфейсов
$ ip addr show
Добавить (или del) ip и маску (255.255.255.0)
$ ip addr add 1.2.3.4/24 brd + dev eth0
Добавление IP-адреса в интерфейс
IP-адрес интерфейса можно получить с помощью DHCP или статического назначения
DHCP Если вы подключены к сети с запущенным DHCP-сервером, команда dhclient
может получить IP-адрес для вашего интерфейса
$ dhclient <interface>
или, альтернативно, вы можете внести изменения в файл /etc/network/interfaces
для интерфейса, который будет загружен при загрузке и получить IP-адрес DHCP
auto eth0
iface eth0 inet dhcp
Статическая конфигурация (постоянное изменение) с использованием файла /etc/network/interfaces
Если вы хотите статически настроить параметры интерфейса (постоянное изменение), вы можете сделать это в /etc/network/interfaces
.
Пример:
auto eth0 # Bring up the interface on boot
iface eth0 inet static
address 10.10.70.10
netmask 255.255.0.0
gateway 10.10.1.1
dns-nameservers 10.10.1.20
dns-nameservers 10.10.1.30
Эти изменения сохраняются даже после перезагрузки системы.
Статическая конфигурация (временное изменение) с использованием утилиты ifconfig
Статический IP-адрес может быть добавлен в интерфейс с помощью утилиты ifconfig
следующим образом
$ ifconfig <interface> <ip-address>/<mask> up
Пример:
$ ifconfig eth0 10.10.50.100/16 up
Локальное разрешение DNS
Файл: /etc/hosts
содержит список хостов, которые должны быть локально разрешены (а не DNS)
Пример содержимого файла:
127.0.0.1 your-node-name.your-domain.com localhost.localdomain localhost
XXX.XXX.XXX.XXX node-name
Формат файла для файла hosts указан в RFC 952
Настройка DNS-серверов для разрешения имени домена
Файл: /etc/resolv.conf
содержит список DNS-серверов для разрешения имен доменов
Пример содержимого файла:
nameserver 8.8.8.8 # IP address of the primary name server
nameserver 8.8.4.4 # IP address of the secondary name server
В случае, если внутренний DNS-сервер вы можете проверить, правильно ли этот сервер правильно разрешает DNS-имена, используя команду dig
:
$ dig google.com @your.dns.server.com +short
Просмотр и управление маршрутами
Управление таблицей маршрутизации IP с использованием route
Отобразить таблицу маршрутизации
$ route # Displays list or routes and also resolves host names
$ route -n # Displays list of routes without resolving host names for faster results
Добавить / Удалить маршрут
вариант | Описание |
---|---|
add или del | Добавить или удалить маршрут |
-host xxxx | Добавить маршрут к одному узлу, идентифицированному по IP-адресу |
-net xxxx | Добавить маршрут в сеть, указанную сетевым адресом |
gw xxxx | Укажите сетевой шлюз |
netmask xxxx | Укажите сетевую маску сети |
default | Добавить маршрут по умолчанию |
Примеры:
- добавить маршрут к хосту
$ route add -host xxxx eth1
- добавить маршрут в сеть
$ route add -net 2.2.2.0 netmask 255.255.255.0 eth0
- Кроме того, вы также можете использовать формат cidr для добавления маршрута в сетевой
route add -net 2.2.2.0/24 eth0
- добавить шлюз по умолчанию
$ route add default gw 2.2.2.1 eth0
- удалить маршрут
$ route del -net 2.2.2.0/24
Манипулировать таблицу IP-маршрутизации, используя ip
Отобразить таблицу маршрутизации
$ ip route show # List routing table
Добавить / Удалить маршрут
вариант | Описание |
---|---|
add или del или change или append или replace | Изменить маршрут |
show или flush | команда отображает содержимое таблиц маршрутизации или удаляет их |
restore | восстановить информацию о таблице маршрутизации из stdin |
get | эта команда получает единственный маршрут к месту назначения и печатает его содержимое точно так же, как это видит ядро |
Примеры:
- Установите шлюз по умолчанию на 1.2.3.254
$ ip route add default via 1.2.3.254
- Добавляет маршрут по умолчанию (для всех адресов) через локальный шлюз 192.168.1.1, который может быть достигнут на устройстве eth0
$ ip route add default via 192.168.1.1 dev eth0
Настроить имя хоста для какой-либо другой системы в вашей сети
Вы можете настроить свою систему Linux (или macOS), чтобы привязать идентификатор <hostname>
к IP-адресу другой системы в вашей сети. Вы можете настроить его:
Systemwide. Вы должны изменить файл / etc / hosts . Вам просто нужно добавить в этот файл новую строку, содержащую:
- IP-адрес удаленной системы
<ip_rem>
, - одно или несколько пробелов и
- идентификатор
<hostname>
.
- IP-адрес удаленной системы
Для одного пользователя. Вы должны изменить файл ~ / .hosts --- вы должны создать его. Это не так просто, как для системы. Здесь вы можете увидеть объяснение.
Например, вы можете добавить эту строку, используя инструмент cat
Unix. Предположим, что вы хотите сделать ping
на ПК в локальной сети, чей IP-адрес равен 192.168.1.44, и вы хотите сослаться на этот IP-адрес только с помощью remote_pc
. Затем вы должны написать в своей оболочке:
$ sudo cat 192.168.1.44 remote_pc
Затем вы можете выполнить этот пинг:
$ ping remote_pc