導航:首頁 > 網路設置 > 把樹莓派網路ip設置為dhcp

把樹莓派網路ip設置為dhcp

發布時間:2023-09-07 10:42:37

1. 忘記樹莓派的固定IP,如何查找

你弄一個腳本,一個個ping網段內的IP地址。然後用arp -a 看MAC地址。 樹莓派的MAC地址很特別。你在網上搜索一下就能找到 。

如果你是在家裡上網,那就簡單的。通常家裡只有幾個設備。樹莓派的地址一定是在前幾個自動分配的IP地址里。比如192.168.1.101-104

2. 1. 樹莓派:eth橋接到wlan口,共享上網

背景: 樹莓派外接5G無線網卡,推流器連接raspberry 3B lan口,共享上網。

驗證: raspberry 3B連接手機的熱點,PC通過網線與raspberry的lan口相連,實現上網。

思路:

1. 首先給raspberry的eth設置一個靜態ip地址。

2. 修改IP轉發規則,允許ip數據的轉發。(ip_forward的設置)

3. 路由設置,配置iptables,進行兩個網卡的橋接。

4. 開啟raspberry的DHCP服務,在eth口上開啟。

5. 開啟DNS服務。

詳細過程:

1. 給樹莓派的eth分配靜態地址。

暫時分配:

sudo ifconfig eth0 192.168.173.1 255.255.255.0 up

永久分配:

寫在配置文件里。

配置文件 /etc/network/interfaces,請注意此處wlan0的地址參數要和etc/udhcpd.conf相關參數相對應。

sudo vi  /etc/network/interfaces

#iface default inet dhcp

增加

auto eth0

iface eth0 inet static

address 192.168.173.1

netmask 255.255.255.0

注意:

2. 啟動IP轉發

有多種方法,建議使用sysctl的設置方式

方法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

有的時候需要在/etc/sysctl.conf下添加一行:net.ipv4.ip_forward=1

3. iptables設置

     iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE

4. dhcp服務

4.1 安裝udhcpd服務

    sudo apt-get update

    sudo apt-get install udhcpd

4.2 配置DHCP服務

    sudo vi /etc/udhcpd.conf

    1. 修改網路介面,設置成對應的網卡號

    2. 設置remaining,去除前面的#符號

    #remaining     yes    改為   remain    yes

    3. 設置樹莓派的IP地址

        修改opt router為192.168.173.1,那麼配置完成之後這個地址將作為網關,連接到raspberry eth口的設備網關需要設置為此IP.

        此處opt dns被修改為公共的DNS地址 114.114.114.114和 114.114.114.115

4.3 使能DHCP

     配置 /etc/default/udhcpd

    sudo nano  /etc/default/udhcpd

    使用#符號注釋DHCPD_ENABLED="no"

    DHCPD_ENABLED="no"    改為     #DHCPD_ENABLED="no"

4.4  啟動服務

    1. 啟動udhcp的服務:sudo service udhcpd start

    2. 設置開機啟動: sudo update-rc.d  udhcpd enable

5. dns服務

在進行調試的時候發現無法查詢到raspberry使用的dns地址,按照常規方法查到的dns地址為127.0.1.1。在網上查了一下https://segmentfault.com/q/1010000002443769 感興趣的可以參考一下這篇文章。

這就導致我在測試的時候遇到一個問題,pc可以通過ip地址訪問,但是通過域名無法訪問。然後我就在網上查了一些共用的dns伺服器,設置後一切正常。關於這些共用的dns信息參考如下:

/********************************************************************************************************************************************************/

A、DNSPod DNS+:DNSPod的 Public DNS+是目前國內第一家支持ECS的公共DNS,是DNSPod推出的公共域名解析服務,可以為全網用戶提供域名的公共遞歸解析服務!

DNS 伺服器 IP 地址:

首選:119.29.29.29        備選:182.254.116.116

B、114DNS:國內用戶量巨大的DNS,訪問速度快,各省都有節點,同時滿足電信、聯通、移動各運營商用戶,可以有效預防劫持。

DNS 伺服器 IP 地址:

首選:114.114.114.114        備選:114.114.114.115

C、阿里 AliDNS:阿里公共DNS是阿里巴巴集團推出的DNS遞歸解析系統,目標是成為國內互聯網基礎設施的組成部分,面向互聯網用戶提供「快速」、「穩定」、「智能」的免費DNS遞歸解析服務。

DNS 伺服器 IP 地址:

首選:223.5.5.5        備選:223.6.6.6

/********************************************************************************************************************************************************/

3. 樹莓派設置wifi 自動連接無線網路

1.開始配置網路了,修改 sudo vim /etc/network/interfaces 文件,把它修改成這個樣子
auto lo

iface lo inet loopback

auto eth0

iface eth0 inet dhcp

allow-hotplug wlan0

auto wlan0

iface wlan0 inet dhcp

    wpa-ssid "你的網路名稱"

    wpa-psk "你的密碼"

2.重啟網路

sudo ifup wlan0

3.查看網路情況

ip addr

4. DHCP 怎樣設置

設置和使用DHCP
在FreeBSD的Packages Collection中,有兩個不同的DHCP客戶機和伺服器軟體,一個為ISC-DHCP,另一個為WIDE-DHCP,兩個軟體都包括了DHCP客戶軟體和伺服器軟體,其中ISC-DHCP 更為常用一些,這里就以ISC-DHCP為例介紹在FreeBSD上安裝和設置DHCP。

為了支持DHCP,首先要確認系統內核支持偽設備bpfilter,如果沒有,就需要重新編譯內核。偽設備bpfilter 是一個允許應用程序接收網路的原始數據包的界面,這樣應用程序就能接收目的地址非本機IP地址的數據包了。DHCP使用bpfilter的原因是在DHCP設置好計算機的TCP/IP之前,由於計算機本身沒有定義IP地址,而TCP/IP堆棧本身不會接收不具備本機IP地址的數據包。要接收DHCP伺服器發送回客戶的數據包,就需要繞過TCP/IP堆棧,而必須使用偽設備bpfilter。

pseudo-device bpfilter 4

定製內核之後,還要保證/dev/目錄下具有對應bpfilter的設備文件。

# cd /dev
# sh MAKEDEV bpf0 bpf1 bpf2 bpf3

從Packages Collecion中安裝DHCP軟體,這將DHCP軟體中的dhcpd,dhclient和dhcprelay 安裝到/usr/local/sbin目錄下。

$ ls /usr/local/sbin/dhc*
/usr/local/sbin/dhclient /usr/local/sbin/dhcpd
/usr/local/sbin/dhcrelay

設置伺服器

為了設置DHCP伺服器dhcpd,首先就要設置其配置文件/etc/dhcpd.conf。這個配置文件語法簡單,比較容易理解。

server-identifier 192.168.3.1;

subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.20;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}
host a1 {
hardware ethernet 00:90:27:4e:92:09;
fixed-address 192.168.3.32;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option domain-name "exampleorg.org.cn";
}

基本的dhcpd.conf首先使用server-identifier定義了本伺服器的IP地址,這對於有多個IP地址的伺服器系統十分重要,一般不必設置這個參數,dhcpd能自動偵測。然後定義要分配IP地址的客戶機組,每組擁有一個可用的IP地址范圍。有兩種客戶機組的劃分方式,一種為指定子網段來區分,一種為指定主機來區分。

這個例子中的第一組定義了一個子網192.168.3.0/24,這個子網段內,可供DHCP伺服器分配的I P地址范圍為192.168.3.10到192.168.3.20,這個地址范圍也可以不是連續的,不連續的地址可以使用多個range設置參數來設置。此外,還設置了這一組內分配的IP地址的租期限制default-lease-time 和max-lease-time,可以使用預設值,而不必改動。後面的option參數設置DHCP的附加功能,例如設置DHCP客戶的網路掩碼、廣播地址、DNS伺服器、域名等等。事實上這些option設置選項也可以被用作全局選項設置,即放置在server-identifier之後,對所有的客戶機組起作用。

例子的第二組是針對某個特定主機a1進行的設置,這個主機被限定為乙太網地址為hardware ethernet 參數值的計算機,將給這個計算機分配一個固定地址。這種分配方式實際等價於固定地址分配方式,唯一的好處就是能夠對IP地址進行集中管理,不必每個計算機分別設置了。這里同樣也可以使用option參數,設置TCP/IP的參數。

dhcpd.conf中還能有更多的組,包括對非本網段的子網上的客戶機指定的組。

當設置了dhcpd.conf之後,就能啟動dhcpd守護進程了,由於計算機會有多個網路界面,需要指定dhcpd 伺服器的網路界面,以便回應相應界面上的DHCP請求。

# /usr/local/sbin/dhcpd fxp0

在調試階段,可以使用-d參數,這樣dhcpd就不會進入後台運行,而一直保留在前台,並顯示各個與客戶計算機通信的過程。當一切都調試完畢之後,就能去除-d參數,並將執行命令放入rc.local啟動腳本中,以便系統能夠自動執行。

此後,dhcpd正常運行的時候,會將每一次客戶請求及其回應的IP地址分配的記錄,都記錄在/var/run/dhcpd.leases 文件中。為了使dhcpd能正常進行日誌記錄,應該在啟動dhcpd之前使用touch 命令,生成一個新的日誌文件。以後就可以查看這個日誌文件的內容,以得到當前DHCP伺服器的狀態和客戶機IP地址分配的情況。以下是一個日誌文件的部分內容。

lease 192.168.3.11 {
starts 3 1998/11/26 05:46:28;
ends 4 1998/11/27 05:46:28;
hardware ethernet 0:80:c2:12:fd:d;
uid 1:0:80:c2:12:fd:d;
}

touch命令的優點是在存在相關的文件時,不刪除或更改文件內容,只更新其訪問時間設置,只有在文件不存在時才生成新文件。

然後就能設置網路中的客戶計算機使用DHCP協議,獲取合法的IP地址了。通常Windows計算機的TCP/IP設置中能直接設置支持DHCP協議,如果為Unix(包括FreeBSD)設置DHCP客戶軟體,就需要dhclient的支持。

設置客戶軟體

ISC-DHCP中同樣也提供了一個客戶程序dhclient,用於FreeBSD系統從DHCP伺服器上動態獲取一個IP地址。這個程序同樣也要求內核支持bpfilter偽設備。

dhclient使用的配置文件為/etc/dhclient.conf,然而最一般的情況下可以不使用它,軟體本身的預設配置就滿足一般情況下請求IP地址的需要了。預設設置下dhclient在獲得了IP地址之後,會自動執行/etc/dhclient-script 這個腳本程序,以針對剛獲取的動態IP地址進行必要的設置。很多依賴於IP地址的網路服務,就可以在這個腳本中啟動,或者針對重新分配的動態IP地址對已有的網路服務進行修正。雖然使用者也許不希望使用這個腳本設置網路,但如果不存在這個腳本程序,或者這個程序不可執行,那麼dhclient就不能正常執行。

因此對於最一般的客戶機,一般只連接到一個網路上,僅具備一個網路界面,可以使用一個空的dhclient.conf 和空的declient-script文件,就能完成設置IP地址和其他TCP/IP參數的任務了。

# touch /etc/dhclient.conf
# touch /etc/dhclient-script
# chmod +x /etc/dhclient-script
# /usr/local/sbin/dhclient fxp0
Listening on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on BPF/fxp0/00:90:27:4e:92:09/unattached
Sending on Socket/fallback/fallback-net
DHCPDISCOVER on fxp0 to 255.255.255.255 port 67 interval 22
DHCPOFFER from 192.168.3.1
DHCPREQUEST on fxp0 to 255.255.255.255 port 67
DHCPACK from 192.168.3.1
bound to 192.168.3.32 -- renewal in 3600 seconds.

在更復雜的情況下,就要指定更多的內容,例如當系統有多個網卡時,要指定dhclient應該從哪個子網中獲得IP地址設置,就需要使用設置文件dhclient.conf。一般除非有多個區域網網路界面,都應該使用空設置文件,避免產生配置錯誤。以下為一個簡單的dhclient.conf的例子,可以用於多網路界面的情況:

# Defaults
timeout 60;
reboot 10;

retry 60;
select-timeout 5;
initial-interval 2;

script "/etc/dhclient-script";

interface "fxp0" {
request subnet-mask, broadcast-address, routers, domain-name-servers,
domain-name, host-name;
require domain-name-servers;
}

這個設置文件主要用於重新定義一些參數,比較容易理解,更改也比較容易。

成功的手工執行dhclient之後,就可以考慮將其和系統啟動文件相結合了。因為很多網路服務是依賴於網路配置的,應該在啟動這些網路服務之前使用DHCP配置好TCP/IP。使用dhclient-script啟動服務的想法雖然也能解決問題,然而這就不能使用系統的啟動rc文件中的相關設置啟動網路服務,而在這個dhclient-script 中重新啟動,因此比較麻煩。更簡便的做法是僅僅在dhclient-script中設置hostname,而讓系統啟動文件完成其他網路服務的啟動。這樣就要求將dhclient與系統rc文件結合起來。

#hostname="my.domain.name"
network_interfaces="fxp0 lo0" # List of network interfaces (lo0 is
loopback).
ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration.
#ifconfig_fxp0="inet 192.168.3.12 netmask 255.255.255.0"
defaultrouter="NO" # Set to default gateway (or NO).

這樣就需要更改rc.conf文件,更改一些設置語句。首先要注釋hostname設置,而在dhclient.script中進行設置,也不必設置defaultrouter,它通過DHCP協議自動設置。同時要保證network_interfaces參數中,設置了要通過dhclient來獲取IP地址的網路界面fxp0,以允許rc系統文件能啟動該與該界面相關的設置文件,然而卻必須注釋設置該界面的參數ifconfig_fxp0,因為這個設置參數是用於設置靜態IP地址的選項,因此要屏蔽它,而使用start_if.fxp0配置腳本來設置網路界面。

預設情況下,不存在start_if.fxp0等start_if設置網路腳本,但是這些腳本在rc.network已經做好了設置,針對每個網路界面啟動,而不需要在rc.conf中做特別設定。對於dhclient,可以創建一個簡單的啟動腳本start_if.fxp0為:

#! /bin/sh
/usr/local/sbin/dhclient fxp0

這樣,dhclient就和系統啟動文件結合起來了,在系統啟動的時候會自動設置好TCP/IP,此後再啟動相關的網路服務。此時需要注意的是刪除原來可能在rc.local或者在/usr/local/etc/rc.d目錄中的dhclient啟動命令,以避免沖突。

在FreeBSD系統上不推薦使用動態IP地址,因為FreeBSD能提供大量有用的網路服務,都會與IP地址或域名有關,不適合使用動態IP地址。如果必須要作為DHCP客戶以保持IP地址的統一管理,建議使用dhcpd針對硬體地址的設置方式,在DHCP伺服器上為FreeBSD系統設定一個固定IP地址。

設置DHCP中轉

當網路中存在多個子網的時候,由於客戶計算機只能通過廣播發送DHCP請求,這些請求一般不能跨越路由器。為了在DHCP伺服器存在的子網之外的DHCP客戶分配IP地址,可以設置路由器轉發DHCP請求,即轉發相應的UDP 埠67和68的廣播數據包。但這樣設置就增加了網路廣播,不利於減少網路流量。

此外,還有另外一種方法來使得DHCP客戶計算機能使用子網之外的DHCP伺服器來分配IP地址。這就是使用 DHCP中轉計算機來轉發DHCP的請求。DHCP中轉計算機能聽取DHCP廣播,由於它了解DHCP伺服器的IP地址,因此能通過正常的IP數據包將原廣播包轉發到伺服器中,然後再將伺服器的回應信息回復客戶機。這樣DHCP客戶機就以為本子網中也存在一個DHCP伺服器。

在ISC-DHCP軟體中,提供的中轉程序為dhcrelay,這是一個簡單的程序,不需要額外的設置。啟動 dhcrelay的標准方式為使用命令行指定將DHCP服務請求中轉到的目的DHCP伺服器,由於DHCP中允許多個 DHCP伺服器同時為客戶提供地址,而不會產生沖突,就可以使用多個DHCP伺服器進行中轉。

# dhcrelay dhcpsrv1 dhcpsrv2

如果這台中轉伺服器為多網路界面計算機,那麼dhcrelay將偵聽所有網路界面的DHCP請求,有時不希望 dhcrelay中轉某些界面上的請求,就可以設置dhcrelay偵聽的網路界面,這需要指定-i參數。

# dhcrelay -i xl0 dhcpsrv1

提供備份的DHCP設置

在一個具備多個子網的大型網路中,提供冗餘是一個非常重要的問題。由於DHCP協議中DHCP伺服器負責分配 IP地址,一旦DHCP伺服器出現故障,那麼所有的客戶就無法正確獲得IP地址,從而不能訪問網路。

但可以同時設置多個DHCP伺服器來提供一個冗餘能力。然而DHCP伺服器本身是不提供備份能力的,不能互為備份。他們佔用的IP地址資源也不能重疊,以免發生客戶機IP地址沖突的現象。提供容錯能力是通過分割可用的IP地址到不同的DHCP伺服器上,通過多個DHCP伺服器同時為一個網路服務,從而使得一個伺服器發生故障還能正常執行操作。通常為了進一步增強可靠性,還可以將不同的DHCP伺服器放置在不同子網中,互相使用中轉提供服務。

例如在兩個子網上各自有一個DHCP伺服器,標準的做法可以不使用DHCP中轉,各個子網上的伺服器為各個子網服務就行了。然而為了達到容錯的目的,可以互相為另一個子網提供服務,通過設置中轉或路由器轉發廣播以達到互為服務的目的。

例如位於192.168.3.0網路上的srv1的配置可能為:

subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.199;
}
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.200 192.168.4.220;
}

位於192.168.4.0網路上的srv2的配置可能為:

subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.10 192.168.4.199;
}
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.200 192.168.3.220;
}

注意,上述設置都是設置樣例,標准情況下還需分別指定各個option,用於設置IP地址及其相關設置。

可以看出兩個伺服器都能對兩個網路上的客戶機分配IP地址,而各自又有一個主要服務的網路。每個網路上的IP 地址主要放在本地的伺服器上,但也有少部分地址放在另一個子網中的伺服器上(地址資源不能沖突),這樣提供了一定的容錯能力。

實際的多子網網路中,並不必要每個子網都設置一個伺服器,並使用另外的伺服器備份,一般網路中有2-3個DH CP伺服器就夠用了。其他子網可以通過DHCP中轉的方式,給該子網提供DHCP服務。

閱讀全文

與把樹莓派網路ip設置為dhcp相關的資料

熱點內容
網路安全健康有序發展 瀏覽:665
網路掃描儀保存設置 瀏覽:421
簡述網路工程測試前有哪些准備工作 瀏覽:278
南陽網路營銷渠道 瀏覽:894
XP網路修復啥軟體 瀏覽:196
網路安全法對個人 瀏覽:321
網路擁堵刷新慢如何解決 瀏覽:849
聯通網路機頂盒怎麼用 瀏覽:264
網路綵球是什麼程序 瀏覽:574
網路安全設備緊急缺陷有哪些 瀏覽:684
吉林網路紅人有哪些 瀏覽:34
哪些游戲不需要網路就可以 瀏覽:564
什麼叫神器網路流行語 瀏覽:511
網路直播系統報價多少 瀏覽:975
投影儀wifi網路無法打開是怎麼了 瀏覽:60
換新網線wifi網路不能用 瀏覽:150
電腦還行為什麼沒網路 瀏覽:473
客服讓我還原網路設置 瀏覽:946
參與網路安全標准制訂的上市公司 瀏覽:856
台式電腦連接無線路由器無網路 瀏覽:468

友情鏈接