Сетевой менеджер: общее подключение и ручные настройки интерфейса
Я использую 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 год.