有什么办法可以从主网(192.168.1.0/24)ping到子网(192.168.2.0/24)

dpo*_*nos 3 networking ping raspberry-pi

因此,我从运行 Raspbian Stretch Kernel 版本:4.14、wlan0 的 Raspberry pi 3b+ 获取互联网,我只是创建了一个网桥,将互联网提供给以太网适配器,当我插入新计算机时,女巫将通过 dhcp 提供 IP 地址。所以我做到了,它有效,但是当我尝试从我的主计算机 ping 192.168.1.0/24 到 192.168.2.0/24 网络时,我不能,但是当我尝试从 192.168.2.0/24 网络 ping 到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
Run Code Online (Sandbox Code Playgroud)

Bob*_*Bob 6

因此,我可以告诉您当前的网络设置是:

  • 的一个专用网络192.168.1.0/24,我们称之为 net1
  • 一个单独的专用网络192.168.2.0/24,我们称之为 net2

现在,net1不是net2的子集。它们实际上是两个独立的网络,您需要在它们之间进行路由。

看起来像:

  • 您的“主”计算机,我们称之为 pcA,在 net1 上
  • 您的“新”计算机,我们称之为 pcB,在 net2 上
  • 您有一个在 net1 和 net2 上都有地址的 Raspberry Pi。
  • 您将 Pi 用作 net2 的网关,并执行 NAT,以便 net2(包括 pcB)上的主机可以访问 net1(因此通过 net1 访问互联网)。这实际上是典型的家庭 NAT 路由器所做的。
    • 这将解释为什么您可以从 net2 访问 net1 主机,而不是相反。

鉴于该设置,您有几个选择:

  • 您可以将其视为任何其他 NAT 路由器(第 3 层)并执行端口转发。换句话说,您可以将端口从 Pi 的 net1 地址转发到 net2 主机上的特定端口。例如,假设 Pi 的 net1 地址为192.168.1.10,pcB 的 net2 地址为192.168.2.55,您可以转发192.168.1.10:80192.168.2.55:80。然后,您可以通过访问 Pi 的端口 80 ( 192.168.1.10:80)从 net1 主机访问 pcB 上的端口 80 。

  • 您可以桥接(第 2 层)Pi 上的两个接口。这意味着一切都在 net1 上,而 net2 不存在。一切都在192.168.1.0/24空间中,可以自由访问。这意味着您的 Pi 不再充当路由器,您应该放弃 NAT 并禁用 Pi 上的 DHCP 和 DNS 服务。Pi 的 eth0 接口上的所有内容都将通过桥接连接通过 net1 的 DHCP 服务器分配一个 net1 地址。

  • 您可以继续拥有两个独立的网络(第 3 层),并继续对外部主机使用 NAT,但在您的内部网络之间正确路由。为此,您有两个选择:

    • 目前,对于不在同一网络上的任何内容,您的 net1 主机都将访问其默认网关。您可以继续这样做,并配置默认网关(可能是您的通用家用路由器)以将任何 net2 目的地转发到 Pi 的 net1 地址。
    • 您可以为每个 net1 主机单独配置一条静态路由,让 net2 目的地通过 Pi 的 net1 地址。这是更多的配置工作,但会更快,因为数据包不必通过 net1 的网关路由。

    使用这些中的任何一个,您应该将 Pi 配置为不对具有 net1 目标的请求应用 NAT;这些应不经翻译转发。


对于您当前的设置,端口转发是最简单的选项。但我建议不使用 NAT 的桥接(如果您实际上不需要额外的网络,这是最干净的解决方案)或路由(如果您确实需要额外的网络,例如用于防火墙目的),因为它们将为您提供完整的无需单独转发每个端口即可访问主机。