IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> ubuntu上hostapd共享上网 -> 正文阅读

[系统运维]ubuntu上hostapd共享上网

在ubuntu主机上安装hostapd,让手机可以共享上网,
ubuntu主机有2个网卡

eth0: (可以上公网)
IP:动态

wlan0:(不能上公网,在这个接口上安装hostapd)
IP:192.168.5.1/24

1、安装hostapd

sudo apt install hostapd

升级hostapd(可以不用升级)

git clone git://w1.fi/srv/git/hostap.git
cd hostap/hostapd
cp defconfig .config
make
sudo cp hostapd /usr/sbin/hostapd

2、配置hostapd

新建/etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
ssid=TP-LINK_TEST  #热点名称
channel=10
hw_mode=g
wpa=3
wpa_passphrase=12345678 #无线密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
ignore_broadcast_ssid=0 #0:显示热点名称 1:隐藏热点名称

使用vi /etc/init.d/hostapd对该文件进行编辑,修改内容如下

DAEMON_CONF="/etc/hostapd/hostapd.conf"

不让NetworkManager管理无线设备, c8:3a:35:cb:18:e0是wlan0的mac地址

sed -i '/\[keyfile\]/a unmanaged-devices=mac:c8:3a:35:cb:18:e0' /etc/NetworkManager/NetworkManager.conf
sudo systemctl restart NetworkManager.service

3、启动hostapd

sudo systemctl start hostpad.serive

如果hostapd开启正常,手机上就能看到TP-LINK_TEST这个热点,连接时发现他不能获取IP,那是UBUNTU上没安装dnsmasq软件,这里就不说明了,我们在手机上直接设置静态IP

IP: 192.168.5.11
网关:192.168.5.1
DNS:8.8.8.8

4、NAT共享网络

配置wlan0的IP

sudo ifconfig wlan0 192.168.5.1/24

启用路由转发,编辑/etc/sysctl.conf 文件,删除起始的“#”,解除

net.ipv4.ip_forward=1

的注释。然后使其生效:

sudo sysctl -p

配置NAT规则

sudo iptables -A FORWARD -o eth0 -i wlan0 -s 192.168.5.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

第一条规则允许转发初始网络包,第二条规则允许转发已经建立连接后的网络包,第三条则设置NAT。

5、保存iptables规则

sudo iptables-save > /etc/iptables.rules

iptables.rules内容

# Generated by iptables-save v1.6.0 on Tue Mar 22 14:32:46 2022
*nat
:PREROUTING ACCEPT [18938:1823629]
:INPUT ACCEPT [12879:1428924]
:OUTPUT ACCEPT [9504:655878]
:POSTROUTING ACCEPT [2629:186085]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Tue Mar 22 14:32:46 2022
# Generated by iptables-save v1.6.0 on Tue Mar 22 14:32:46 2022
*filter
:INPUT ACCEPT [1178226:592266889]
:FORWARD DROP [1500:70910]
:OUTPUT ACCEPT [1556034:1578549464]
-A FORWARD -s 192.168.5.0/24 -i wlan0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Tue Mar 22 14:32:46 2022

然后新建一个bash脚本(名字随便),并保存到/etc/network/if-pre-up.d/目录下:

#!/bin/bash
iptables-restore < /etc/iptables.rules

这样,每次系统重启后iptables规则都会被自动加载。
不要尝试在.bashrc或者.profile中执行以上命令,因为用户通常不是root,而且这只能在登录时加载iptables规则。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:59:27  更:2022-03-24 01:02:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:54:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码