背景:樹(shù)莓派外接USB無(wú)線網(wǎng)卡,待上網(wǎng)設(shè)備通過(guò)網(wǎng)線和樹(shù)莓派的RJ45口相連念逞。
思路:
1. 首先給raspberry的eth設(shè)置一個(gè)靜態(tài)ip地址碾局。
2. 修改IP轉(zhuǎn)發(fā)規(guī)則,允許ip數(shù)據(jù)的轉(zhuǎn)發(fā)肋层。(ip_forward的設(shè)置)
3. 路由設(shè)置亿笤,配置iptables,進(jìn)行兩個(gè)網(wǎng)卡的橋接槽驶。
4. 開(kāi)啟raspberry的DHCP服務(wù)责嚷,在eth口上開(kāi)啟。
5. 開(kāi)啟DNS服務(wù)掂铐。
詳細(xì)過(guò)程:
1. 給樹(shù)莓派的有線網(wǎng)卡eth分配靜態(tài)地址罕拂。
暫時(shí)分配:sudo ifconfig eth0 192.168.173.1 255.255.255.0 up
永久分配:
—配置文件 /etc/network/interfaces
這是最常用的方法,但是在樹(shù)莓派的原生系統(tǒng)下一般會(huì)建議全陨,將靜態(tài)IP設(shè)置在?/etc/dhcpcd.conf文件下爆班。
并且在我的調(diào)試過(guò)程中,在interfaces文件下設(shè)置ip會(huì)導(dǎo)致不能識(shí)別USB網(wǎng)卡辱姨,很奇怪柿菩,所以還是建議在/etc/dhcpcd.conf文件修改。
—配置文件 /etc/dhcpcd.conf
在文件末尾添加
在配置靜態(tài)ip的同時(shí)雨涛,一般也會(huì)配置routers和domain-name-servers枢舶,但是我配置了這兩個(gè)會(huì)導(dǎo)致usb網(wǎng)卡無(wú)法上網(wǎng)。所以沒(méi)有在此配置文件下對(duì)這兩個(gè)參數(shù)進(jìn)行配置替久。
2. 啟動(dòng)IP轉(zhuǎn)發(fā)
有多種方法凉泄,建議使用sysctl的設(shè)置方式
方法1:sudo echo 1 > /proc/sys/net/ipv4/ip_forward
方法2:sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
方法3:sudo sysctl -w net.ipv4.ip_forward=1
有的時(shí)候需要在/etc/sysctl.conf下添加一行:net.ipv4.ip_forward=1
我采用的是方法三。
3. iptables設(shè)置
配置防火墻蚯根,啟用NAT后众,在usb0接口上啟動(dòng)IP偽裝:
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
注意:這一步執(zhí)行后,一定要將配置持久化颅拦,否則下次開(kāi)機(jī)啟動(dòng)后配置會(huì)失效坡椒,導(dǎo)致雖然共享網(wǎng)口的主機(jī)可以dhcp獲取地址卻無(wú)法上網(wǎng)贴届。
防火墻配置持久化:導(dǎo)出防火墻配置并存到/etc目錄下
1. 導(dǎo)出iptables的配置,并保存在/etc目錄下
2. 添加開(kāi)機(jī)啟動(dòng)
新建/etc/network/if-pre-up.d/iptables文件,內(nèi)容如下:
4. dhcp服務(wù)
4.1 安裝udhcpd服務(wù)
????sudo apt-get update
????sudo apt-get install udhcpd
4.2 配置DHCP服務(wù)
sudo vi /etc/udhcpd.conf
1. 修改網(wǎng)絡(luò)接口际插,設(shè)置成對(duì)應(yīng)的網(wǎng)卡號(hào)
2. 設(shè)置remaining硝枉,去除前面的#符號(hào)
????#remaining yes 去掉#改為 ? remain ? ?yes
3. 設(shè)置樹(shù)莓派的IP地址
????????修改opt router為192.168.173.1岸售,那么配置完成之后這個(gè)地址將作為網(wǎng)關(guān),連接到raspberry eth口的設(shè)備網(wǎng)關(guān)需要設(shè)置為此IP.
????????此處opt dns被修改為公共的DNS地址 114.114.114.114和 114.114.114.115
4.3 使能DHCP
? ? 配置 /etc/default/udhcpd
????sudo vi ?/etc/default/udhcpd
????使用#符號(hào)注釋DHCPD_ENABLED="no"
? ? DHCPD_ENABLED="no"????改為?#DHCPD_ENABLED="no"
4.4 ?啟動(dòng)服務(wù)
1. 啟動(dòng)udhcp的服務(wù):sudo service udhcpd start
2. 設(shè)置開(kāi)機(jī)啟動(dòng):sudo update-rc.d ?udhcpd enable
5. dns服務(wù)
在進(jìn)行調(diào)試的時(shí)候發(fā)現(xiàn)無(wú)法查詢到raspberry使用的dns地址痊臭,按照常規(guī)方法查到的dns地址為127.0.1.1。在網(wǎng)上查了一下https://segmentfault.com/q/1010000002443769 感興趣的可以參考一下這篇文章登夫。
這就導(dǎo)致我在測(cè)試的時(shí)候遇到一個(gè)問(wèn)題广匙,pc可以通過(guò)ip地址訪問(wèn),但是通過(guò)域名無(wú)法訪問(wèn)恼策。然后我就在網(wǎng)上查了一些共用的dns服務(wù)器鸦致,設(shè)置后一切正常。關(guān)于這些共用的dns信息參考如下:
/********************************************************************************************************************************************************/
A涣楷、DNSPod DNS+:DNSPod的 Public DNS+是目前國(guó)內(nèi)第一家支持ECS的公共DNS分唾,是DNSPod推出的公共域名解析服務(wù),可以為全網(wǎng)用戶提供域名的公共遞歸解析服務(wù)狮斗!
DNS 服務(wù)器 IP 地址:
首選:119.29.29.29????????備選:182.254.116.116
B绽乔、114DNS:國(guó)內(nèi)用戶量巨大的DNS,訪問(wèn)速度快碳褒,各省都有節(jié)點(diǎn)折砸,同時(shí)滿足電信、聯(lián)通沙峻、移動(dòng)各運(yùn)營(yíng)商用戶睦授,可以有效預(yù)防劫持。
DNS 服務(wù)器 IP 地址:
首選:114.114.114.114????????備選:114.114.114.115
C摔寨、阿里 AliDNS:阿里公共DNS是阿里巴巴集團(tuán)推出的DNS遞歸解析系統(tǒng)去枷,目標(biāo)是成為國(guó)內(nèi)互聯(lián)網(wǎng)基礎(chǔ)設(shè)施的組成部分,面向互聯(lián)網(wǎng)用戶提供“快速”是复、“穩(wěn)定”删顶、“智能”的免費(fèi)DNS遞歸解析服務(wù)。
DNS 服務(wù)器 IP 地址:
首選:223.5.5.5????????備選:223.6.6.6
/********************************************************************************************************************************************************/