Buộc địa chỉ IPv4


15

Tôi đã nâng cấp Raspberry Pi của mình lên Jessie, sử dụng systemd. Một tác dụng phụ là nó chỉ kết nối bằng IPv6 và không có địa chỉ IPv4. Làm cách nào tôi có thể buộc nó lấy địa chỉ IPv4 từ máy chủ DHCP?

Một giải pháp đặc biệt là lệnh

sudo dhclient -4 -v eth0

nhưng điều này chỉ kéo dài cho phiên hiện tại.


Không có câu trả lời nào dưới đây có hiệu quả với tôi, thay vào đó tôi cần sudo apt-get install isc-dhcp-clientsau khi sử dụng sudo dhclient -4 -v eth0để lên mạng.
mrswadge

Một số bối cảnh để bình luận trước đây của tôi. Trong tình huống của tôi, các triệu chứng khi chạy sudo ifup -v eth0cuộc gọi đến dhclient đã thất bại và thay vào đó hiển thị thông tin sử dụng.
mrswadge

Câu trả lời:


9

Raspbian Jessie không còn có một tệp được gọi /etc/sysctl.d- bây giờ nó là một thư mục cùng tên.

Theo tệp read-me trong cùng một thư mục, README.sysctlvề cơ bản nó nói rằng bất kỳ .conftệp nào sẽ được đọc vào lúc khởi động và được xử lý. Bất kỳ tên tệp hợp pháp nào cũng sẽ hoạt động, nhưng họ đề xuất local.conf, vì vậy đó là những gì tôi đã sử dụng.

Tôi đã tạo /etc/sysctl.d/local.confvà thêm một dòng từ các câu trả lời khác:

net.ipv6.conf.all.disable_ipv6=1

Điều này dường như chỉ hoạt động tốt.


Bất cứ điều gì .dtrong /etckhông bao giờ là bất cứ điều gì ngoại trừ một thư mục để bắt đầu. Tôi không biết câu trả lời của Joe Platano có liên quan đến lỗi đánh máy hay liệu điều đó có thực sự hiệu quả hay không, bằng cách nào đó tôi nghi ngờ nó (mặc dù dường như có một câu trả lời khác xác nhận nó sẽ xảy ra).
goldilocks

2

bạn có thể chèn một dòng vào sysctl để tắt ipv6.

echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d

Điều này sẽ hoạt động sau khi khởi động lại tiếp theo.


Đó là /etc/sysctl.conf dưới dạng tệp đích. Xin lưu ý rằng> sẽ ghi đè toàn bộ tệp!
David

2

Trong Raspbian Jessie / Jessie Lite, chỉ cần chỉnh sửa /etc/sysctl.conftệp và thêm công tắc để tắt ipv6, như sau:

sudo nano /etc/sysctl.conf

Nhập văn bản:

net.ipv6.conf.all.disable_ipv6=1

Lưu file này với Ctrl-O, Ctrl-Xvà khởi động lại RPi.


2

sudo nano /etc/sysctl.conf

nối các dòng sau để tắt ipv6:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

chạy sudo sysctl -pđể có hiệu lực hoặc chỉ cần khởi động lại.


1

cách dễ nhất mà tôi tìm thấy cũng nhận được địa chỉ IPv4 cho giao diện là thay đổi / etc / mạng / giao diện: đặt hướng dẫn thành dhcp ... điều đó cũng giúp bạn có địa chỉ IPv4 trên eth0 ... có lẽ chỉ là hack nhưng không phải là ' Tôi cũng không tìm thấy thứ gì tốt hơn cả ...

    auto eth0
    allow-hotplug eth0
    # iface eth0 inet manual
    iface eth0 inet dhcp

Raspbian Jessie không sử dụng dhcp(trừ khi người dùng thực sự loay hoay với nó) và điều này sẽ ngăn hỗ trợ GUI WiFi hoạt động.
Milliways

1

Kết hợp, sửa chữa và thêm vào các câu trả lời trước:

Để sửa giao diện (eth hoặc wlan) chỉ hiển thị địa chỉ inet6 (IPV6) và không có địa chỉ inet (IPV4), bạn có thể nối thêm tệp cấu hình để tắt gán inet6 (IPV6), để tất cả các giao diện được cung cấp inet (IPV4) địa chỉ. Nếu tệp cấu hình đó sau đó bị xóa một lần nữa, các giao diện sẽ được cung cấp CẢ HAI một địa chỉ inet (IPV4) và địa chỉ inet6 (IPV6), tức là trở về trạng thái mặc định thông thường.

Để thêm tệp:

sudo nano /etc/sysctl.d/local.conf

và thêm dòng duy nhất:

net.ipv6.conf.all.disable_ipv6=1

Lưu với Ctrl-O, Y, [Trở về]. Khởi động lại và đăng nhập lại.

sudo reboot

Kiểm tra địa chỉ bằng

ifconfig

Xóa tệp cấu hình và khởi động lại:

cd /etc/sysctl.d
sudo rm local.conf
sudo reboot

Kiểm tra lại với ifconfig:

ifconfig

Xem cả hai địa chỉ inet (IPV4) và inet6 (IPV6) cho tất cả các giao diện:

eth0      Link encap:Ethernet  HWaddr 00:e0:4c:53:44:58
          inet addr:192.168.1.228  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::26a5:b629:f948:92c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:62:b4:7a
          inet addr:192.168.1.229  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::254c:3f61:fdc:bc49/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Và tôi có thể một lần nữa SSH tới Pi Zero của mình bằng eth0 hoặc wlan0, cả hai đều sử dụng địa chỉ IPV4 hoặc IPV6.


1

Tôi đã nâng cấp Raspberry Pi của mình thành Stretch và tôi không thể có bất kỳ thành công nào với bất kỳ biến thể nào của net.ipv6.conf.all.disable_ipv6=1câu trả lời.

Chạy thủ công sudo dhclient -4 -v eth0để kết nối mạng / internet của tôi hoạt động trở lại, tuy nhiên như được nêu bởi người đăng ban đầu, nó không tồn tại khi khởi động lại.

Tôi nhận thấy rằng đã sudo ifup -v eth0gọi dhclient, nhưng nó đã thất bại và thay vì hoạt động chính xác, nó đang hiển thị thông tin sử dụng cho dhclientlệnh.

Cách giải quyết có vẻ là để di chuyển khỏi dhclientvà thay vào đó cài đặt isc-dhcp-client. Khi khởi động lại, kết nối của tôi đã tự động khả dụng sau khi cài đặt gói này.

sudo apt-get install isc-dhcp-client
sudo reboot

0

Tôi có cùng một vấn đề và đã thử giải pháp bên dưới, điều này hoạt động tốt sau khi khởi động lại Pi của tôi.

sudo nano  /etc/sysctl.d

kiểu

net.ipv6.conf.all.disable_ipv6=1

tiết kiệm với ^Otớisysctl.d

sudo reboot

Bây giờ tôi thấy địa chỉ ip4 của tôi trên màn hình khởi động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.