背景
有2台8g运行内存的闲置笔记本,本着物尽其用的想法,打算将闲置的笔记本构建自己用的局域网服务器。
需求
- 多台设备之间能够实现互相访问
- 局域网要有WIFI
- 局域网中的设备通过一台进行上网
- 主力机器要同时连接外网和内网
设备拓扑图
实现方案
硬件层面
- 使用交换机和WIFI路由器作为局域网的转运中心。
- 选择笔记本A作为核心设备,永不关机。
- 选择A是因为同时具有WIFI和网口,作为闲置无特殊需求基本不会改变。
软件层面
操作系统
不用说,要将笔记本A,B都刷成Linux,毕竟是老机器了。 这里我选择的系统是Debian操作系统。 至于Ubuntu个人感觉其太臃肿了,相比而言不如Debian稳定。
核心服务
- DHCP服务
- 给局域网中的设备自动分配IP地址
- 转发服务
- 将局域网中需要上网的数据转发给笔记本A,进行上网
服务配置
DHCP服务
配置静态IP
- 在
/etc/network/interfaces.d目录下创建对应接口文件enp2s0.cfg添加以下配置
iface enp2s0 inet static
address 192.168.36.1
netmask 255.255.255.0
network 192.168.36.0
- 配置生效
sudo systemctl restart networking,如果没生效就重启下吧。
安装DHCP服务
安装DHCP软件(Debian使用的是isc-xxx)
apt install isc-dhcp-server
DHCP配置
sudo vim /etc/dhcp/dhcpd.conf
subnet 192.168.36.0 netmask 255.255.255.0{
range 192.168.36.100 192.168.36.200;
option routers 192.168.36.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8,144.144.144.144;
option broadcast-address 192.168.36.255;
}
# 配置静态设备IP
host w {
hardware ethernet xx:xx:xx:xx:xx:xD;
fixed-address 192.168.36.102;
}
host m {
hardware ethernet Dx:xx:xx:xx:xx:xx;
fixed-address 192.168.36.105;
}
- 指定DHCP接口
打开
sudo nano /etc/default/isc-dhcp-server, 修改INTERFACESv4="enp2s0" - 重启DHCP生效
sudo systemctl restart isc-dhcp-server - 检测DHCP运行状态
sudo systemctl status isc-dhcp-server - 配置开启自启动DHCP
sudo systemctl enable isc-dhcp-server
检验
尝试接入网络设备,看是否成功,成功后再进行下一步
转发服务
启用IP转发
在主机A上启用IP转发,以便数据包能够从有线网卡转发到无线网卡。
通过编辑 /etc/sysctl.conf 文件来启用IP转发。
-
打开终端并输入以下命令来编辑
sysctl.conf文件:sudo nano /etc/sysctl.conf -
找到或添加以下行:
net.ipv4.ip_forward=1 -
保存并退出编辑器。
-
使设置生效:
sudo sysctl -p
配置NAT (Network Address Translation)
使用 iptables 配置NAT,使来自内网的流量通过无线网卡上网。
-
假设有线网卡为
enp2s0,无线网卡为wlp3s0,执行以下命令:sudo iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE
配置路由
sudo iptables -A FORWARD -i wlp3s0 -o enp2s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp2s0 -o wlp3s0 -j ACCEPT
配置保存
-
如果你想让这些规则在系统重启后仍然有效,可以将其保存到
/etc/iptables/rules.v4文件中(如果使用iptables-persistent):-
安装
iptables-persistent(如果未安装):sudo apt-get install iptables-persistent -
保存当前的
iptables规则:sudo iptables-save > /etc/iptables/rules.v4
-
-
设置自动加载
sudo systemctl enable netfilter-persistent
sudo systemctl start netfilter-persistent
检验
- 使用内网设备尝试连接网络,成功就OK了
内网WIFI路由器设置
- 连接LAN口
- 选择有线中继模式
需求Check
- 多台设备之间能够实现互相访问
- 局域网要有WIFI
- 局域网中的设备通过一台进行上网
- 主力机器要同时连接外网和内网
★,°:.☆( ̄▽ ̄)/$:.°★ 。