2

Добрый день,

Я пытаюсь повторить настройку между маршрутизатором и ПК с 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 .

Когда я вхожу в устройство, я сбрасываю маршруты, затем создаю маршрут по умолчанию:

admin@localhost> route -f
admin@localhost> route add default 172.16.84.2

Теперь на моей машине с Ubuntu я использую iptables для включения маскировки IP:

root@Valhalla> sudo iptables -t nat -A POSTROUTING -s 172.16.84.2 -j MASQUERADE

После того, как все это будет сделано, маршрутизатор имеет доступ в Интернет через USB-соединение с моим ПК.

Я пытаюсь повторить эту точную настройку на моем MacBook (Snow Leopard), но iptables не существует для OSX, даже не существует версии Macports. Я рассмотрел другие вопросы о StackOverflow, которые касаются использования команды ipfw , которая, по-видимому, работает в качестве замены для iptables . Тем не менее, синтаксис значительно отличается, и я в значительной степени потерян.

У кого-нибудь с опытом работы с ipfw есть какие-то предложения о том, как мне это сделать и создать NAT-соединение через IP-маскарадинг, как я мог бы с моим компьютером с Ubuntu?

Спасибо за помощь.

2 ответа2

1

почему вы просто не пользуетесь простым доступом в интернет на вашем macosx? Системные настройки> Общий доступ> Общий Интернет

для ipfw nat есть правила (латы говорят, что ваш интернет en0 и локальный интерфейс en1)

  1. sysctl -w net.inet.ip.fw.one_pass = 1 (вам нужно быть пользователем root)
  2. sysctl -w net.inet.ip.forwarding = 1
  3. /sbin/ipfw add 1040 разрешить ip от любого к любому через en1 (разрешить все, что будет проходить через локальный интерфейс)
  4. /sbin/ipfw добавить divert natd все из любого в любое через en0
  5. /sbin/ipfw add pass all из любого в любой natd -интерфейс en0 (где en0 ваш исходящий интерфейс)
  6. /usr/sbin/natd -interface en0 (сам nat)
1

Что ж, самый простой способ сделать это с помощью OSX - это просто использовать System Preferences -> Sharing -> Internet Sharing . Вы проверяете общий доступ к Интернету и настраиваете его так, чтобы он отображал состояние Internet Sharing Share your connection from Ethernet 2 (как я полагаю, ваше сетевое устройство USB выглядит так), To computers using Ethernet (как я полагаю, вы хотите, чтобы ваша локальная сеть была через Ethernet, в противном случае выберите аэропорт или что-нибудь актуальное).

Бородатый способ сделать это - использовать ipfw и route. Простой поиск в Google дает хорошее руководство по обоим методам по следующему URL:

http://www.ibiblio.org/macsupport/ipfw/ (путь командной строки - после способа GUI)

НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .