OSX: Mimic Ubuntu IP маскируется через iptables с помощью ipfw
3387
DevNull
Добрый день,
Я пытаюсь повторить настройку между маршрутизатором и ПК с Ubuntu, и на моем MacBook работает такая же настройка (10.6, Snow Leopard).
Во-первых, у меня есть маршрутизатор с портом USB. Когда я подключаю его к своему компьютеру Ubuntu, он создает RNDIS-соединение, позволяющее мне подключаться к маршрутизатору через USB-кабель через IP-соединение. Когда я подключаю его к компьютеру через USB, ему присваивается IP-адрес 172.16.84.1, и при наборе текста появляется новый адаптер ifconfig. Я могу тогда SSH в устройство через ssh admin@172.16.84.1.
Когда я вхожу в устройство, я сбрасываю маршруты, затем создаю маршрут по умолчанию:
После того, как все это будет сделано, маршрутизатор имеет доступ в Интернет через USB-соединение с моим ПК.
Я пытаюсь повторить эту точную настройку на моем MacBook (Snow Leopard), но iptablesне существует для OSX, даже нет версии для Macports. Я рассмотрел другие вопросы о StackOverflow, которые касаются использования ipfwкоманды, которая, очевидно, работает в качестве замены для замены iptables. Тем не менее, синтаксис значительно отличается, и я в значительной степени потерян.
Есть ли у кого-нибудь опыт работы с ipfwнекоторыми предложениями о том, как я могу сделать это и создать NAT-соединение через IP-маскарадинг, как я мог бы с моим компьютером Ubuntu?
Спасибо за помощь.
2 ответа на вопрос
1
NauT
почему вы просто не пользуетесь простым доступом в интернет на вашем macosx? Системные настройки> Общий доступ> Общий Интернет
для ipfw nat есть правила (латы говорят, что ваш интернет en0 и локальный интерфейс en1)
sysctl -w net.inet.ip.fw.one_pass = 1 (вам нужно быть пользователем root)
sysctl -w net.inet.ip.forwarding = 1
/ sbin / ipfw add 1040 разрешить ip от любого к любому через en1 (разрешить все, что будет проходить через локальный интерфейс)
/ sbin / ipfw добавить divert natd все из любого в любое через en0
/ sbin / ipfw add pass all из любого в любой natd -интерфейс en0 (где en0 ваш исходящий интерфейс)
/ usr / sbin / natd -interface en0 (сам nat)
Это близко к тому, что я пытаюсь сделать, но шаги 3 и 4 выдавали «плохая команда / файл не найден». Это команды sysctl или ipfw?
DevNull 11 лет назад
0
это команды ipfw
NauT 11 лет назад
0
Первые три команды работают, но у четвертой проблемы: local $> ipfw nat 1 log config, если en1 сбрасывает same_ports deny_in ipfw: плохая команда `nat '
DevNull 11 лет назад
0
хорошо, похоже, что я допустил ошибку, пытаясь использовать тот же набор правил, что и в BSD на OSX, здесь мы идем с правильной командой / sbin / ipfw add divert natd all от любого к любому через en0 / sbin / ipfw add pass all от любого к любому natd -интерфейсу en0 (где en0 ваш исходящий интерфейс)
NauT 11 лет назад
0
Все, кроме шага 5, сработало:> sudo / sbin / ipfw add pass all из любого в любой natd -интерфейс en0 ipfw: нераспознанная опция [-1] -interface \ n
DevNull 11 лет назад
0
без шага 5 но с шагом 6 nat, вероятно, должен работать? это сработало?
NauT 11 лет назад
0
Неудачно. Маршрутизатор не может ни пропинговать определенные IP-адреса, ни имена хостов.
DevNull 11 лет назад
0
давайте [продолжим обсуждение в чате] (http://chat.stackexchange.com/rooms/6730/discussion-between-naut-and-dogbert)
NauT 11 лет назад
0
Ребята, можно ли опубликовать окончательное решение здесь? Спасибо
sukhvir 9 лет назад
0
1
zmo
Что ж, самый простой способ сделать это с помощью OSX - просто System Preferences-> Sharing-> Internet Sharing. Вы проверяете Internet Sharingи настраиваете его так, чтобы оно указывало Share your connection from Ethernet 2(как я полагаю, ваше сетевое устройство USB выглядит так), To computers using Ethernet(как я полагаю, вы хотите, чтобы ваша локальная сеть была подключена к Ethernet, в противном случае выберите аэропорт или что-нибудь еще подходящее).
Бородатый способ сделать это - использовать ipfw и route. Простой поиск в Google дает хорошее руководство по обоим методам по следующему URL:
Я не знаком с термином "бородатый путь". Что это значит? Я ищу программный подход без GUI.
DevNull 11 лет назад
0
«Бородатый» - это шутка, чтобы сказать «для настоящих мужчин, у которых есть борода» :-) для подхода без использования GUI, вы можете использовать ссылку, которую я вам дал. В этой ссылке они даже показывают, как вы можете настроить вещи с помощью пользовательского интерфейса, а затем распечатать правила, чтобы иметь возможность их воспроизвести позже.
zmo 11 лет назад
0