将树莓派配置成路由器

安装pppoe拨号上网软件

sudo apt install pppoe pppoeconf pppstatus

更新系统

sudo apt update 
sudo apt dist-update

安装hostapd和dhcp

sudo apt install hostapd isc-dhcp-server

修改/etc/dhcp/dhcpd.conf 配置文件

  • 注释以下两行
    # option domain-name "example.org";
    # option domain-name-servers ns1.example.org, ns2.example.org;
  • 取消注释下面这行
    #authoritative;
  • 在行尾加上
    subnet 192.168.42.0 netmask 255.255.255.0 {
        range 192.168.42.10 192.168.42.50;
        option broadcast-address 192.168.42.255;
        option routers 192.168.42.1;
        default-lease-time 600;
        max-lease-time 7200;
        option domain-name "local";
        option domain-name-servers 114.114.114.114, 114.114.115.115;
    }

修改/etc/default/isc-dhcp-server配置文件

  • 更改INTERFACESv4并注释INTERFACESv6
    INTERFACESv4="wlan0"
    #INTERFACESv6=""
  • 关闭wlan0接口
    sudo ifdown wlan0

修改/etc/network/interfaces配置文件

  • 将下面行放到文件末尾
    auto lo
    iface lo inet loopback
    iface eth0 inet dhcp
    allow-hotplug wlan0
    iface wlan0 inet static
    address 192.168.42.1
    netmask 255.255.255.0
    post-up iw dev $IFACE set power_save off
  • 强行更改ip
    sudo ifconfig wlan0 192.168.42.1

创建/etc/hostapd/hostapd.conf配置文件设置wifi

  • 写入如下行
    interface=wlan0
    ssid=wifiname
    hw_mode=g
    channel=6
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=password
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP

修改/etc/sysctl.conf配置文件将pppoe与wifi连接起来实现wifi上网

  • 在文件最后加上
    net.ipv4.ip_forward=1
  • 刷一下iptables
    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT

    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    sudo iptables -A FORWARD -i ppp0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
  • 加入启动项全家通
    sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
  • 最后在文件/etc/network/interfaces后加入如下行
    up iptables-restore < /etc/iptables.ipv4.nat

最后

sudo service hostapd start
sudo service isc-dhcp-server start
sudo reboot
本作品采用《CC 协议》,转载必须注明作者和本文链接
blabla
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!