Centos9通过命令行配置无线网卡开启WiFi热点

一、环境信息

1.1基本信息

centos9虚拟机工作在VMware Workstation上,一张网卡桥接主机PC物理网卡,一张无线网卡通过物理主机映射连接到虚拟机。虚拟机通过开启无线网卡热点WiFi供无线终端连接,有线网卡供无线热点上网。

[root@localhost ~]# cat /etc/redhat-release 
CentOS Stream release 9
[root@localhost ~]# 
[root@localhost ~]# uname -r
5.14.0-386.el9.x86_64
[root@localhost ~]#

两张网卡配置如下

1.2安装无线网卡相关包

[root@localhost ~]# dnf install net-tools iw hostapd  NetworkManager-wifi -y
[root@localhost ~]# systemctl restart NetworkManager

1.3确认无线网卡是否可用

[root@localhost ~]# iw dev

 若iw dev输出无线网卡信息,则表示网线网卡可用。若无输出信息表示无线网卡不可用

 

 1.4确认无线网卡是否支持AP模式

[root@localhost ~]# iw list

  若iw list 输出里面 Supported interface modes: 有 "AP" 那么意味着你的网卡支持

1.5修改虚拟机网卡名称(可选)

[root@localhost ~]# vi /etc/default/grub

找到包含 GRUB_CMDLINE_LINUX 的行,添加 net.ifnames=0 biosdevname=0 参数:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"


[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@localhost ~]# reboot

二、配置热点服务

2.1热点前期准备

确保有线网卡可以上网,不会配置网上搜索下相关资料

 为无线网卡配置一个IP,此ip作为热点的网关

[root@localhost]# ip addr add 192.168.50.1/24 dev wlan0 
[root@localhost]# ip addr 

 让 NetworkManager 不再托管无线网卡

[root@localhost]# nmcli device set wlan0 managed no 

 关闭系统防火墙和selinux

[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2.2配置热点配置文件

首先备份hostapd.conf原有配置,然后覆盖hostapd.conf配置文件

[root@localhost]# cp  /etc/hostapd/hostapd.conf{,.bak}
[root@localhost]# cat << EOF > /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=hostapd1
hw_mode=g
channel=6
wpa=2
wpa_passphrase=admin123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
EOF

 以下信息需要根据自己实际情况来编辑

interface=wlan0                            #热点的无线网卡名称

ssid=hostapd1                              #热点的名称

wpa_passphrase=admin123        #热点的密码

2.3修改热点启动服务 

首先备份热点服务的原有配置,然后覆盖hostapd.service配置文件,,最后启动热点服务

[root@localhost]# cp /usr/lib/systemd/system/hostapd.service{,.bak}
[root@localhost]# cat << EOF > /usr/lib/systemd/system/hostapd.service
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=network.target

[Service]
Type=simple
PIDFile=/run/hostapd.pid
EnvironmentFile=/etc/sysconfig/hostapd
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf 

[Install]
WantedBy=multi-user.target
EOF

[root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl start hostapd.service

查看热点运行服务

[root@localhost ~]# systemctl status hostapd

三、配置DHCP服务

3.1配置dhcpd配置文件

首先备份dhcpd.conf原有配置,然后覆盖dhcpd.con配置文件。最后启动dhcpd服务

[root@localhost]# cat << EOF > /etc/dhcp/dhcpd.conf
subnet 192.168.50.0 netmask 255.255.255.0 {
     range 192.168.50.100 192.168.50.200;
     option routers 192.168.50.1;
     option domain-name-servers 223.5.5.5;
     default-lease-time 600;
     max-lease-time 7200;
     interface wlan0;
}
EOF
[root@localhost]# systemctl start dhcpd.service

配置说明:

  1. subnet 192.168.50.0 netmask 255.255.255.0 {

    • 这行定义了一个子网,IP地址范围是192.168.50.0到192.168.50.255,子网掩码是255.255.255.0。
  2. option routers 192.168.50.1;

    • 这行指定了默认网关的IP地址为192.168.50.1,为无线网卡配置的ip。
  3. interface wlan0;

    • 这行指定了该配置应用于哪个网络接口,这里是wlan0。

 查看dhcpd运行服务

[root@localhost ~]# systemctl status dhcpd

 四、配置iptables上网

配置iptables

[root@localhost ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
[root@localhost ~]# iptables -A FORWARD -i wlan0 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@localhost ~]# iptables-save > /etc/sysconfig/iptables

配置iptables服务,保证服务器重启后iptables规则还在

[root@localhost ~]# cat << EOF >/etc/systemd/system/iptables-restore.service
[Unit]
Description=Restore iptables rules
Before=network-pre.target
Wants=network-pre.target

[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore /etc/sysconfig/iptables
ExecReload=/sbin/iptables-restore /etc/sysconfig/iptables
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF


# 配置iptables开机自启服务
[root@localhost ~]# systemctl enable iptables-restore.service 

iptables说明

  1. iptables -n -v -L FORWARD --line-number:这个命令用于列出所有与转发(FORWARD)相关的防火墙规则,显示详细的流量信息,并且按照行号排序
  2. iptables -L -v -n:这个命令用于列出所有的防火墙规则,显示详细的流量信息,并且不进行任何特定链的过滤
  3. iptables -v -n -L FORWARD:这个命令也是列出所有与转发(FORWARD)相关的防火墙规则,显示详细的流量信息,但是不显示行号
  4. iptables -t nat -L -v -n:这个命令用于列出所有与网络地址转换(NAT)相关的防火墙规则,显示详细的流量信息
  5. iptables -D FORWARD 3:这个命令用于删除转发(FORWARD)链中的第3条规则
  6. iptables -t nat -F:这个命令用于清空所有与网络地址转换(NAT)相关的防火墙规则
  7. iptables -t nat -D PREROUTING 1:这个命令用于删除网络地址转换(NAT)中的PREROUTING链的第1条规则

 五、热点连接测试

手机连接热点后,ip地址是192.168.50.182

查看热点运行服务状态

查看dhcpd服务运行状态

 六、可能遇到问题

有时候在虚拟机中没有识别到USB无线网卡,需要在虚拟机开机后拔掉宿主机usb无线网卡,重新插一下。。。

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值