Подключение сервера к интернету: от кабеля до маршрутизации
Чтобы подключить сервер к интернету, необходимо корректно настроить сетевой интерфейс (присвоить IP-адрес), указать шлюз по умолчанию (gateway) для выхода во внешнюю сеть и прописать DNS-серверы для разрешения доменных имен. В большинстве случаев на Linux-серверах используется статическая настройка сети. Если сервер находится за роутером или в облачной инфраструктуре, также может потребоваться настройка NAT или проверка правил фаервола.
Ниже приведена подробная инструкция по настройке сетевого стека в современных дистрибутивах Linux.
Краткий чек-лист настройки:
- Физическое подключение и определение имени интерфейса.
- Назначение IP-адреса и маски подсети.
- Установка шлюза по умолчанию (
default via). - Настройка DNS-резолверов.
- Проверка связности (
ping,traceroute).
Определение сетевого интерфейса и подготовка
Перед редактированием конфигов нужно понять, какой сетевой адаптер активен. В современных системах имена интерфейсов могут отличаться от привычных eth0.
Выполните команду:
ip link show
Ищите интерфейс со статусом UP или тот, который физически подключен (часто имеет название вида enp3s0, ens192 или eth0). Запомните его имя — оно понадобится в дальнейших шагах.
Важно: Если вы подключаетесь к серверу удаленно через SSH, ошибка в настройке сети приведет к потере доступа. Используйте консоль управления (KVM/IPMI/VNC) или настраивайте сеть локально.
Настройка статического IP-адреса
Для серверов рекомендуется использовать статический IP-адрес, чтобы сервисы всегда были доступны по одному и тому же адресу. Способ настройки зависит от дистрибутива и используемого менеджера сетей.
Вариант 1: Netplan (Ubuntu 18.04+, Debian 12+)
Netplan использует YAML-конфигурацию. Отредактируйте файл в /etc/netplan/ (например, 00-installer-config.yaml):
network:
version: 2
ethernets:
enp3s0: # Имя вашего интерфейса
dhcp4: no
addresses:
- 192.168.1.100/24 # Ваш IP и маска
routes:
- to: default
via: 192.168.1.1 # Шлюз (роутер)
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
Примените настройки:
sudo netplan apply
Вариант 2: NetworkManager (RHEL, CentOS, Fedora, AlmaLinux)
Используйте утилиту nmcli для быстрой настройки без правки файлов вручную.
- Посмотрите имя соединения:
nmcli connection show
- Установите статический IP, шлюз и DNS (замените
ens192на ваше соединение):
sudo nmcli connection modify ens192 ipv4.method manual
sudo nmcli connection modify ens192 ipv4.addresses 192.168.1.100/24
sudo nmcli connection modify ens192 ipv4.gateway 192.168.1.1
sudo nmcli connection modify ens192 ipv4.dns "8.8.8.8 1.1.1.1"
- Перезапустите соединение:
sudo nmcli connection up ens192
Вариант 3: ifupdown (Debian 11 и старше, старые Ubuntu)
Отредактируйте файл /etc/network/interfaces:
auto enp3s0
iface enp3s0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 1.1.1.1
Перезапустите службу сети:
sudo systemctl restart networking
Маршрутизация: шлюз по умолчанию
Маршрутизация определяет, куда отправлять пакеты, если адрес назначения не находится в локальной подсети. Для выхода в интернет нужен шлюз по умолчанию (default gateway).
Если вы настроили сеть через Netplan или NetworkManager, маршрут добавился автоматически. Проверить это можно командой:
ip route show
Вы должны увидеть строку вида:
default via 192.168.1.1 dev enp3s0 proto static ...
Если маршрута нет, добавьте его вручную (временно, до перезагрузки):
sudo ip route add default via 192.168.1.1 dev enp3s0
Диагностика маршрутов:
Если пинг до шлюза проходит, а до внешних сайтов — нет, проверьте таблицу маршрутизации. Команда ip route get 8.8.8.8 покажет, через какой интерфейс и шлюз пойдет пакет к указанному IP.
Настройка DNS
Даже при правильном IP и маршрутах сервер не сможет открывать сайты по доменным именам (например, google.com) без настроенного DNS.
- Проверка текущего резолвера:
cat /etc/resolv.conf
- Ручная правка (не рекомендуется для продакшена):
Можно добавить
nameserver 8.8.8.8в/etc/resolv.conf, но после перезагрузки службы сети этот файл может быть перезаписан. - Правильный способ:
Указывайте DNS-серверы в конфигурации сетевого менеджера (как показано в примерах выше для Netplan, NM или interfaces). Система сама пропишет их в
resolv.conf.
Настройка NAT (если сервер раздает интернет)
Если ваш сервер имеет два интерфейса (один смотрит в интернет, другой в локальную сеть) и должен предоставлять доступ в интернет другим устройствам, необходимо включить форвардинг пакетов и настроить NAT (Masquerade).
- Включите IP-форвардинг:
Раскомментируйте или добавьте строку в
/etc/sysctl.conf:
net.ipv4.ip_forward=1
Примените изменение:
sudo sysctl -p
- Настройте правила фаервола (iptables):
Предположим,
eth0— внешний интерфейс (интернет),eth1— внутренний.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
Для сохранения правил используйте iptables-persistent (Debian/Ubuntu) или service iptables save (RHEL/CentOS).
Проверка подключения и диагностика
После настройки выполните последовательную проверку:
- Пинг до шлюза:
ping -c 4 192.168.1.1
Если не проходит: проблема в кабеле, VLAN, настройках свитча или неверном IP/маске.
- Пинг до внешнего IP:
ping -c 4 8.8.8.8
Если не проходит: проблема в шлюзе по умолчанию или настройках провайдера/роутера.
- Разрешение имен (DNS):
nslookup google.com
# или
dig google.com
Если не проходит: проверьте настройки DNS в /etc/resolv.conf.
- Проверка HTTP-соединения:
curl -I https://example.com
Частые ошибки
| Ошибка | Причина | Решение |
|---|---|---|
Network is unreachable | Нет маршрута по умолчанию или интерфейс DOWN | Проверьте ip route и ip link set <iface> up |
Temporary failure in name resolution | Не настроен DNS или заблокирован порт 53 | Проверьте /etc/resolv.conf и доступность UDP 53 |
Connection timed out | Пакеты уходят, но ответ не приходит (фаервол) | Проверьте правила iptables/nftables и настройки внешнего роутера |
| Конфликт IP-адресов | Два устройства в сети имеют одинаковый IP | Смените IP на сервере или найдите второе устройство через arp-scan |
FAQ
В: Чем отличается статический IP от DHCP? О: При DHCP адрес выдается автоматически и может измениться после перезагрузки или истечения аренды. Для серверов это недопустимо, так как клиенты потеряют связь с сервисом. Статический IP фиксируется вручную.
В: Как сделать настройки постоянными?
О: Изменения, внесенные через команду ip addr add или ip route add, сбрасываются после перезагрузки. Всегда используйте конфигурационные файлы (netplan, nmcli, /etc/network/interfaces) для сохранения настроек.
В: Почему я не могу подключиться по SSH после смены IP? О: Вы сменили адрес, с которого идет соединение, или указали неверный шлюз. Вернитесь к предыдущей рабочей конфигурации через консоль (KVM) или откатите изменения в файлах конфигурации и перезапустите сеть.