2012-10-04 16 views
6

Tôi làm việc trên thiết bị nhúng có Linux trên đó. Tôi muốn sử dụng DHCP client trước, nhưng nếu không có câu trả lời từ DHCP Server, tôi muốn đặt IP mặc định tĩnh. Tôi cho rằng nó không phải là phức tạp, nhưng tôi đã không tìm thấy câu trả lời nghiêm ngặt.Đặt ip tĩnh nếu không nhận được từ DHCP (tập lệnh)

Tôi đang suy nghĩ về 2 giải pháp (Đáng tiếc là tôi có thể kiểm tra chúng trong vài ngày):

  1. tôi đặt IP tĩnh với ifconfig, sau đó tôi gọi udhcpc. Nếu udhcpc không nhận được IP mới, udhcpc sẽ ở lại.

  2. Tôi cũng có thể gọi udhcpc trước tiên, chờ một lúc và kiểm tra xem IP có được nhận hay không. Nhưng điều này không tốt cho tôi. Tôi không muốn thêm bất kỳ thói quen chờ đợi vào khởi động.

BR Bartek

tôi sử dụng udhcpc - một cái gì đó như:

udhcpc -n -f -i eth0 
if ifconfig | grep -A1 eth0 | grep inet 
    then 

Trả lời

20

dhclient nên hỗ trợ dự phòng thông qua tuyên bố thuê có một cái nhìn tại trang dhclient.conf người đàn ông.

Thêm một cái gì đó như thế này để bạn dhclient.conf

timeout 10; 
lease { 
interface "eth0"; 
fixed-address 10.0.0.10; 
option subnet-mask 255.255.255.0; 
renew 2 2022/1/1 00:00:01; 
rebind 2 2022/1/1 00:00:01; 
expire 2 2022/1/1 0:00:01; 
} 

hoặc bạn có thể gán một địa chỉ IP thứ hai để giao diện như /etc/network/interfaces

auto lo 
iface lo inet loopback 
iface eth0 inet dhcp 

auto eth0:1 
iface eth0:1 inet static 
address 10.10.10.2 
netmask 255.255.255.0 
+0

tôi sử dụng udhcpc và làm một cái gì đó như: \t \t udhcpc -n - f -i eth0 \t \t nếu ifconfig | grep -A1 eth0 | grep inet \t \t sau đó –

+0

Tại sao cũng không 'tự động eth0'? – ygoe