您尚未登录。

楼主 # 2023-10-11 15:13:45

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 229
积分: 207

请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

离线

楼主 #1 2023-10-11 15:15:36

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 229
积分: 207

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

同一个 dhcpd 进程,可以同时给 eth0和wlan0分配ip吗?

#设置wifi网卡地址
ifconfig wlan0 192.168.0.1[/b]

#给wifi网卡设置dhcp服务器
mkdir -p /var/run/dhcp-server/
dhcpd wlan0 -cf /etc/dhcpd.conf -pf /var/run/dhcp-server/dhcpd.pid

离线

#2 2023-10-11 15:20:47

memory
会员
注册时间: 2021-08-11
已发帖子: 240
积分: 214

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

在Linux中,我们可以使用iptables命令来设置网络转发和NAT(网络地址转换)规则。以下是一种可能的配置方式:

首先,开启IPv4转发功能。你可以通过修改/etc/sysctl.conf文件或者直接使用sysctl命令来实现。这里我们使用sysctl命令:

sudo sysctl -w net.ipv4.ip_forward=1
使用iptables设置NAT规则。假设eth0和wlan0是你的内部网络(LAN),eth1是你的外部网络(WAN):


# 创建NAT规则,将从内网到外网的数据包源地址改为外网接口地址
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# 将内网接收到的目标地址为外网接口地址的数据包转发给外网
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth1 -j ACCEPT

# 允许已经建立的或相关的连接的数据包通过防火墙
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
注意:这些步骤只是一个基本示例,实际的网络配置可能会更加复杂,这取决于你的具体需求和网络环境。此外,你可能需要考虑安全性问题,并设置相应的防火墙规则。最后,你可能需要将这些命令添加到启动脚本中,以确保在重启后依然生效。

离线

#3 2023-10-11 15:21:14

memory
会员
注册时间: 2021-08-11
已发帖子: 240
积分: 214

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

是的,同一个dhcpd进程可以同时为多个网络接口(例如eth0和wlan0)分配IP地址。你需要在DHCP配置文件中(通常位于/etc/dhcp/dhcpd.conf)定义适当的子网并指定要分配的IP范围。

以下是一个简单的示例,其中eth0对应的是192.168.1.0/24网络,wlan0对应的是192.168.2.0/24网络:


subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.10 192.168.2.100;
    option routers 192.168.2.1;
    option domain-name-servers 8.8.8.8;
}
在这个例子中,192.168.1.10到192.168.1.100的IP地址将被分配给通过eth0连接的设备,192.168.2.10到192.168.2.100的IP地址将被分配给通过wlan0连接的设备。

请注意,每个子网内的其他配置选项(如默认网关(routers)和DNS服务器(domain-name-servers))也会相应地根据你的实际网络环境进行设置。

然后,你需要确保dhcpd服务在启动时监听这两个接口。在DHCPD的命令行参数或者配置文件中指定它们。例如,如果你是通过命令行启动dhcpd,可能会使用类似于以下的命令:


dhcpd eth0 wlan0
这将会启动dhcpd,并让它监听eth0和wlan0这两个接口。

离线

#4 2023-10-11 15:24:47

memory
会员
注册时间: 2021-08-11
已发帖子: 240
积分: 214

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

在Linux下,你可以使用brctl(桥接控制)工具创建一个网络桥并将eth0和wlan0添加到该网桥。以下是步骤:

安装bridge-utils包,这个包包含brctl工具:

sudo apt-get update
sudo apt-get install bridge-utils
创建一个新的桥接设备,比如叫做br0:

sudo brctl addbr br0
将eth0和wlan0添加到这个桥接设备:

sudo brctl addif br0 eth0
sudo brctl addif br0 wlan0
启动桥接设备:

sudo ifconfig br0 up
这样,eth0和wlan0就被加入到同一个桥接接口br0上了。

注意,一些无线网卡可能不支持桥接模式,所以并非所有硬件都能成功执行上述操作。而且,如果你想要让这个配置在重启后依然生效,你需要将它们添加到网络配置文件中,这个过程取决于你所使用的发行版和网络管理工具。

同样要注意的是,当你将接口添加到网桥时,这些接口的IP配置应该应用到网桥上,而原来的接口应该没有IP地址。你可以用dhclient br0命令为网桥获取IP地址,如果你的网络环境中有DHCP服务器的话。

离线

楼主 #5 2023-10-11 15:30:33

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 229
积分: 207

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

@memory
谢谢大佬,请问什么是网桥?

离线

#6 2023-10-11 15:31:30

memory
会员
注册时间: 2021-08-11
已发帖子: 240
积分: 214

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

ubuntu 说:

@memory
谢谢大佬,请问什么是网桥?

网桥(Bridge)是用于连接和转发数据的网络设备,常被用于连接两个或多个网络段,使它们看起来像一个网络。网桥在数据链路层(OSI模型的第二层)工作,允许两个网络节点(比如主机、路由器或者交换机)之间进行通信。

网桥根据MAC地址表进行转发决策,只有目标地址与该接口相同的数据帧才会被转发,从而减少了网络流量,并提高了网络的整体效率。网桥还可以防止数据帧在网络中形成环路,这对于避免广播风暴非常重要。

在物理设备中,网桥通常以独立的硬件形式存在。然而,在计算机网络中,你也可以创建软件网桥,这就是在Linux和其他操作系统中使用"网桥"的概念。例如,你可以将两个网络接口(如eth0和wlan0)添加到同一个软件网桥(如br0),从而让它们共享同一网络环境。

在虚拟化环境中,网桥也经常被用来将虚拟机连接到宿主机的网络中,让虚拟机能够像宿主机一样访问网络资源。

离线

楼主 #7 2023-10-11 18:11:44

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 229
积分: 207

Re: 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。

这个aic8800 的wlan0 没法加入br0

# brctl addif br0 wlan0
can't add wlan0 to bridge br0: Operation not supported

查了一下

这个错误可能是由于你尝试将一个无线接口(wlan0)添加到网桥,但是许多无线设备并不支持这种操作。这是由于802.11 WiFi规定的限制和驱动程序实现的问题。

一种可能的解决方案是将无线接口设置为四层(IP层)而非二层(以太网层)的转发模式。你可以使用Linux的网络地址转换(NAT)功能或者IP路由来实现这个目标。例如,你可以使用iptables和netfilter来配置NAT和防火墙规则,从而允许通过wlan0接收到的数据包在eth0和其他接口之间转发。

另外一个方法是使用第三方工具,如hostapd,它可以将无线网卡设置为AP模式(如果硬件支持),然后创建一个虚拟的有线接口,并将该接口加入到网桥。

需要注意的是,具体的解决方案取决于你的具体需求和环境,包括你的硬件、驱动程序、网络环境和安全需求等因素。

感觉可能是驱动问题。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn