3

Поэтому я беру интернет с моего Raspberry pi 3b+, работающего под управлением Raspbian Stretch Kernel:4.14, wlan0, и я просто создаю сетевой мост, чтобы подключить интернет к адаптеру Ethernet, который будет выдавать IP-адреса по протоколу DHCP, когда я подключу к нему новый компьютер. так что я сделал это, и это работает, но когда я пытаюсь пинговать с моего главного компьютера, ведьма находится в сети 192.168.1.0/24 до 192.168.2.0/24, я не могу, но когда я пытаюсь пинговать от сети 192.168.2.0/24 до 192.168.1.0/24 я могу.Это почему? я хочу быть в состоянии достичь 192.168.2.xxx потому что я хочу разместить там веб-сервер.Помогите..

Я пытался соединить так:

sudo apt-get install dnsmasq

sudo nano /etc/dhcpcd.conf:
interface eth0
static ip_address=192.168.2.1/24 
static routers=192.168.2.0

sudo nano /etc/network/interfaces:
 auto eth0
allow-hotplug eth0 
iface eth0 inet static
    address 192.168.2.1 
    netmask 255.255.255.0
    network 192.168.2.0 
    broadcast 192.168.2.255

auto wlan0
allow-hotplug wlan0 
iface wlan0 inet static 
    address 192.168.1.10 
    gateway 192.168.1.1 
    netmask 255.255.255.0 
    network 192.168.1.0 
    broadcast 192.168.1.255 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

sudo service dhcpcd restart

sudo nano /etc/dnsmasq.conf:
interface=eth0 # Use interface eth0 listen-address=192.168.2.1 # Specify the address to listen on bind-interfaces # Bind to the interface 
server=8.8.8.8 # Use Google DNS
domain-needed # Don't forward short names
bogus-priv # Drop the non-routed address spaces. 
dhcp-range=192.168.2.10,192.168.2.20,12h # IP range and lease time

sudo nano /etc/sysctl.conf:
net.ipv4.ip_forward=1 


sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT`
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

sudo service dnsmasq start

1 ответ1

6

Итак, из того, что я могу сказать, ваша текущая настройка сети:

  • Одна частная сеть 192.168.1.0/24 , назовем это net1
  • Отдельная частная сеть 192.168.2.0/24 , назовем это net2

Теперь net1 не является подмножеством net2. На самом деле это две отдельные сети, и вам нужно прокладывать маршрут между ними.

Это выглядит как:

  • Ваш "главный" компьютер, назовем его pcA, находится на net1
  • Ваш "новый" компьютер, назовем его pcb, находится на net2
  • У вас есть Raspberry Pi, который имеет адрес как в net1, так и в net2.
  • Pi работает как шлюз для net2 и выполняет NAT таким образом, что хосты в net2 (включая pcB) могут получить доступ к net1 (и, следовательно, к Интернету через net1). Это фактически то, что делает ваш типичный домашний маршрутизатор NAT.
    • Это объясняет, почему вы можете получить доступ к хостам net1 из net2, а не наоборот.

Учитывая эту настройку, у вас есть несколько вариантов:

  • Вы можете рассматривать это как любой другой маршрутизатор NAT (уровень 3) и выполнять переадресацию портов. Другими словами, вы можете перенаправить порт с адреса net1 Пи на определенный порт на хосте net2. Например, предполагая, что Pi имеет адрес net1 192.168.1.10 а pcB имеет адрес net2 192.168.2.55 , вы можете переслать 192.168.1.10:80 на 192.168.2.55:80 . Затем вы можете получить доступ к порту 80 на печатной плате с хостов net1, получив доступ к порту 80 Pi (192.168.1.10:80).

  • Вы можете соединить (уровень 2) два интерфейса на Pi. Это означало бы, что все находится на net1, и net2 не существует. Все будет в пространстве 192.168.1.0/24 и может свободно обращаться друг к другу. Это означало бы, что ваш Pi больше не действует как маршрутизатор, и вам следует отказаться от NAT и отключить службы DHCP и DNS на Pi. Все на интерфейсе eth0 Pi будет назначен адрес net1 через DHCP-сервер net1 через мостовое соединение.

  • Вы можете по-прежнему иметь две отдельные сети (уровень 3) и продолжать использовать NAT для внешних хостов, но правильно прокладывать маршрут между своими внутренними сетями. Для этого у вас есть два варианта:

    • В настоящее время все ваши хосты net1 будут использовать шлюз по умолчанию для всего, что находится не в той же сети. Вы можете продолжить делать это и настроить шлюз по умолчанию (возможно, ваш общий домашний маршрутизатор) для пересылки любых пунктов назначения net2 на адрес net1 Pi.
    • Вы можете индивидуально настроить каждый хост net1 со статическим маршрутом, чтобы назначения net2 проходили через адрес net1 Pi. Это немного больше работы по настройке, но будет быстрее, так как пакеты не должны маршрутизироваться через шлюз net1.

    С любым из них вы должны настроить Pi так, чтобы он не применял NAT к запросам с адресатом net1; они должны быть отправлены без перевода.


Переадресация портов - это самый простой вариант с вашей текущей настройкой. Но я бы порекомендовал либо мостовое соединение (если вам на самом деле не нужна дополнительная сеть, это самое чистое решение), либо маршрутизацию (если вам действительно нужна дополнительная сеть, например, для целей брандмауэра) без NAT, поскольку они дадут вам полную доступ к хостам без необходимости переадресации каждого порта в отдельности.

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