Сетевой менеджер: общее подключение и ручные настройки интерфейса

Я использую Ubuntu 14. У меня есть два интерфейса (eth0 и usb0) и два соединения с ручными настройками. Я хочу использовать сетевой менеджер. Eth0 является WAN. Как я могу создать общий доступ к другим компьютерам? Если я создаю новое соединение (третье) и использую eth0 в качестве интерфейса, то это не сработает. Если я открою существующее соединение (eth0) и поменяю метод с Manual в Shared to other computers тогда все мои настройки исчезают.

2 ответа

Сделать это через сетевой менеджер с помощью графического интерфейса

dnsmasq-base должен быть установлен:

sudo apt-get install dnsmasq-base

Удалите dnsmasq, потому что он конфликтует с NetworkManager:

sudo apt-get remove dnsmasq

NetworkManager версии 0.7, поставляемый с Ubuntu 8.10 и более поздними версиями, содержит переработанный пользовательский интерфейс для управления сетевыми подключениями.

Среди новых функций и пользовательского интерфейса есть возможность сделать соединение "Доступным для других компьютеров". По сути, это очень простой NAT (трансляция сетевых адресов) или совместное использование интернет-соединения, встроенный прямо в NetworkManager.

Чтобы включить это, вы должны выполнить три шага:

Установите dnsmasq на свой компьютер. (В Ubuntu вы захотите установить dnsmasq-base пакет. (apt-get install dnsmasq-base это самый простой способ)

Убедитесь, что ваше WAN-соединение (т. Е. Интернет-соединение) настроено (например, с DHCP или статическим адресом) и работает. В основном, убедитесь, что вы можете открыть веб-страницы.

Для интерфейса локальной сети (это может быть вторая сетевая карта или беспроводная карта), выберите "Доступ к другим компьютерам" на вкладке "Настройки IPv4".

Если все работает правильно, NetworkManager должен автоматически настроить подсеть и DHCP-сервер на интерфейсе локальной сети и быть готовым к совместному использованию вашего подключения к Интернету.

Делать это через терминал

В Linux очень просто маскироваться (общий доступ к интернету на языке Windows) с помощью нескольких строк команд iptables и ip_forward. Прежде всего вы должны очистить и удалить существующие правила брандмауэра. Так что сбросьте правила, набрав в терминале:

iptables -F
iptables -t nat -F
iptables -t mangle -F

Теперь удалите эти цепочки:

iptables -X
iptables -t nat -X
iptables -t mangle -X

Теперь пришло время сохранить правила iptables, наберите:

service iptables save
service iptables restart

Теперь все правила и цепочки были очищены! Проверьте это в /etc/sysconfig/iptables, в котором все правила по умолчанию установлены для принятия. Теперь откройте /etc/rc.d/rc.local и вставьте строку:

echo "1" > /proc/sys/net/ipv4/ip_forward

А затем сохраните и закройте файл. Теперь, если ваш интернет-интерфейс имеет вид eth0, введите:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
service iptables save
service iptables restart

Примечание: проверьте, установлен ли iptables для запуска во время загрузки. Или проверьте состояние вашего сервиса iptables:

chkconfig –list iptables

Если уровень 5 включен, то все в порядке, иначе начните обслуживание с уровня 5 или уровня 2345.

Образец цитирования:

https://jeremy.visser.name/2009/03/simple-internet-connection-sharing-with-networkmanager/

https://www.howtoforge.com/internet-connection-sharing-masquerading-on-linux

Поскольку этот вопрос появляется в 1-й строке поиска Google, я решил написать сюда.

Начиная с 2023 года, в Ubuntu22.04 общий доступ к сетевому подключению к другим клиентским устройствам работает «из коробки», за исключением одного:

      sudo ufw disable

Если вы не отключите брандмауэр, ваше устройство получит локальный IP-адрес, и вы сможете использовать SSH между вашим хост-компьютером и клиентом, но клиент не сможет получить доступ к общедоступному Интернету. Поэтому, если отключить брандмауэр, я проверял на двух разных ПК, этот метод работает по состоянию на 2023 год.

Другие вопросы по тегам