Linux 變身無線網卡,轉有線


環境說明:
操作系統Ubuntu 20.04 LTS
wlan0 以及成功連接上wifi獲取IP 10.10.10.18/24
部署前需要准備環境 
1、bridge-utils  網卡橋接工具
2、dnsmasq  DHCPv4 服務器,DNS 服務器;  如需dhcpv6 還需要radvd
步驟
1、新增一個邏輯網卡 br0
        brctl addbr br0
2、br0橋在物理網卡eth0 
        brctl addif br0 eth0
3、給br0指定一個IP地址
        ifconfig br0 192.168.50.1 up
4、清除eth0的IP地址
        ifconfig eth0 0.0.0.0 up
5、流量轉發開啟
        nano /etc/sysctl.conf   在文本末尾新增一行 net.ipv4.ip_forward=1
        保存配置 sysctl -p
6、配置流量出口   這里的wlan0  就是無線出口
        iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
7、配置dhcpv4 服務器
        配置文件在 /etc/dnsmasq.conf
        新增地址池;當前租期120秒。建議12h
        dhcp-range=192.168.50.50,192.168.50.150,120s
8、重啟dhcp服務器
        service dnsmasq start;
9、接上有線電腦就可以愉快的上網了
知識點:
            如果發現你的電腦拿到了IP但是無法上網,那么很可能是路由的wlan0的  Metric 不是最小。導致默認流量並非走的wlan0;此時我們需要修改Metric改小  例如 (15)。
            修改Metric的 方式有很多種,但是我們針對當前ubuntu20.04 最好的方式是修改 /etc/netplan/50-cloud-init.yaml  
 
network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    version: 2
    wifis:
        wlan0:
            dhcp4: true
            routes:
              - to: 0.0.0.0/0
                via: 10.10.10.1
                metric: 15
            access-points:
                "SSID":
                    password: "Password"

以下內容為腳本,存在於 https://gitee.com/bigkiss/ubuntu/tree/master/sh.script
#!/bin/sh -e
######初始化,腳本第一次執行########
##環境支持;網橋配置工具
#apt-get install bridge-utils
#
##dhcp服務器支持
#apt-get install dnsmasq
#echo 'interface=eth0,br0' > /etc/dnsmasq.conf
#echo 'dhcp-range=192.168.50.50,192.168.50.150,255.255.255.0,12h' >> /etc/dnsmasq.conf
##添加dhcp 服務器61.139.2.69給dhcp客戶端
#echo 'dhcp-option=6,61.139.2.69' >> /etc/dnsmasq.conf
#
#開啟內核轉發
#echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
#sysctl -p
##############初始化完成###############
echo '第一次執行前請依據環境,執行上面初始化信息'
#ip地址准備
#新增一個邏輯網絡br0
brctl addbr br0
#添加物理網卡對br0的支持
brctl addif br0 eth0
#設置邏輯IP地址
ifconfig br0 192.168.50.1 up
ifconfig eth0 0.0.0.0 up
#硬件原因,配置耗時過長
echo 'please wait 10 second'
sleep 10
#將wlan0作為輸入源,流量轉發,關鍵步驟
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
echo 'nat update success'
##dhcp服務器啟動
#cp /etc/dnsmasq.conf /etc/dnsmasq.conf.mibo.bak
systemctl restart dnsmasq.service
echo 'dhcp server restart success!!!!'
echo '如果無法獲取到IP ,請手動執行  service dnsmasq restart'
exit 0
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM