Kết nối Wifi với Ethernet trên Ubuntu không hoạt động


22

Khi chạy Windows, tôi có thể kết nối wifi của mình thông qua kết nối Ethernet của máy tính xách tay để một loạt các thiết bị chỉ có ethernet có thể tắt nguồn wifi của tôi (Raspberry Pi, Xbox, v.v.). Bây giờ tôi đang cố gắng làm điều tương tự trong Ubuntu, tức là thiết lập sẽ là:

Bộ định tuyến không dây ---> Wifi trên máy tính xách tay ---> kết nối với Ethernet ---> Thiết bị cần kết nối internet với cổng Ethernet

Bây giờ tôi đã cố gắng để làm việc này trong Ubuntu bằng brctl

Tôi đã sử dụng lệnh dưới đây:

sudo brctl addif br0 eth0 wlan0

Và nhận được lỗi sau:

can't add wlan0 to bridge br0: Operation not supported

Tôi hy vọng ai đó có thể giúp đỡ vì tôi từ chối tin vào những điều tôi có thể làm trong windows rất dễ dàng không thể thực hiện được trong Linux.

Nếu bạn cần thêm thông tin nào hãy cho tôi biết. Cảm ơn


Vấn đề rất giống nhau được xử lý trong [ askubfox.com/questions/155041/ từ
Legionair

Câu trả lời:


10

Điều này không thể được thực hiện. Bạn không thể kết nối máy khách WiFi. Nếu bạn có thể, chúng tôi sẽ không cần WDS, chúng tôi sẽ làm cầu nối.

Vấn đề rất đơn giản - một điểm truy cập bị cấm bởi đặc tả WiFi phát sóng lưu lượng truy cập qua mạng WiFi trừ khi có thứ gì đó cho phép truyền đi. Đây phần lớn là một di tích từ thời mạng WiFi rất chậm và kém, nếu có, bảo mật.

Cây cầu chỉ có một kết nối máy khách đến điểm truy cập. Điều này chỉ cho phép điểm truy cập để truyền lưu lượng truy cập bị ràng buộc cho cây cầu. Bởi vì bất kỳ máy nào được kết nối với cầu không phải là máy khách của điểm truy cập, điểm truy cập không có lý do để gửi lưu lượng truy cập cho chúng qua liên kết WiFi. Vì vậy, nó sẽ không làm như vậy.

Thật không may, WiFi là đủ như Ethernet mà thật dễ dàng để mong đợi nó hoạt động như Ethernet. Nhưng nó chỉ đủ khác nhau để cắn bạn.

Cấu hình WDS là ủy quyền cụ thể cho một điểm truy cập để gửi lưu lượng truy cập không bị ràng buộc cho bất kỳ khách hàng nào của nó. Khi cả hai đầu đều hỗ trợ WDS, chúng bao gồm địa chỉ của điểm cuối bắc cầu cũng như địa chỉ của điểm đến, cho phép điểm truy cập gửi lưu lượng.

Bạn phải sử dụng một cái gì đó ngoài việc bắc cầu để làm điều này. Định tuyến với NAT chẳng hạn. Bạn cũng có thể sử dụng bốn chế độ địa chỉ, nếu cả hai đầu của liên kết WiFi đều hỗ trợ nó.


3
Bạn có thể giải quyết vấn đề này bằng cách viết lại địa chỉ mac bằng ebtables
ccarton

Tôi nhận thấy rằng một người ở đây nói rằng bạn có thể trong Ubuntu..và tôi cũng đã làm một cái gì đó giống như trong cửa sổ .. mặc dù bạn nói điều đó là không thể nên có lẽ bạn có thể giải thích sự khác biệt giữa cái này và cái này. Trong Windows khi bạn thực hiện điều này youtube.com/watch?v=96Z1_6rX5qU WiFi được kết nối với internet. Không có cáp trong đầu nối Ethernet..hoặc cáp của một comp khác trong đầu nối Ethernet. Sau đó, chọn Bộ điều hợp WiFi và Bộ điều hợp Ethernet, nó kết nối chúng với nhau, sau đó một máy tính khác có thể cắm cáp của nó vào và sử dụng kết nối Internet Máy tính xách tay vẫn là máy khách WiFi mà tôi nghĩ (chứ không phải là điểm truy cập)
barlop

1
@DavidSchwartz Nếu một người có máy tính xách tay không có dây không hoạt động và không có công tắc mạng để cắm vào để truy cập internet, nhưng một máy tính xách tay khác có truy cập internet không dây và không có thẻ nhớ USB không dây dự phòng. Sau đó, có vẻ như giải pháp duy nhất là fakery bắc cầu. Nếu cả hai máy tính xách tay đều có bộ điều hợp mạng không dây hoạt động, cả hai chỉ có thể kết nối với điểm truy cập không dây chính, không cần thêm điểm truy cập và WDS .. Tôi đã sử dụng bộ kết nối cầu nối khi một máy tính xách tay không thể kết nối không dây.
barlop

1
Sai. Đối với người mới bắt đầu, WDS là kết nối WiFi, không giống như các kết nối khác. Thứ hai, có những thiết bị dễ thương này được gọi là cầu khách hoặc cầu truyền thông kết nối qua AP và cầu trong suốt 3-5 Giắc cắm có dây, có thể là trung tâm, v.v. họ có thể kết nối bao nhiêu MAC, nhưng cuối cùng ... có một cách. Địa ngục, ngay cả Linux cũng sẽ cho phép bạn sử dụng chế độ WDS làm STA nếu bạn đặt 4addr làm chế độ trên thiết bị thông qua lệnh iw và trình điều khiển cho phép bạn thực hiện. Bạn có thể cầu ... nó chỉ có ... provisos.
Svartalf

1
@DavidSchwartz: Định tuyến? Nghiêm túc? Đây là một gợi ý. Ứng dụng có thể có hơn 500 nút trong mạng. BẠN có thể thực hiện định tuyến duyên dáng làm việc theo cách đó? "WDS thực sự"? Tôi có thể yên tâm rằng nó sẽ hoạt động với Cisco, Aruba, Ubiquiti và những người khác không? Nếu vậy, thì có ... nếu không ... tiền đề là một vấn đề khó khăn. Tôi đã làm cho nó hoạt động khá tốt với sự điên rồ mà tôi đang thử với chế độ WDS-Station ... nhưng nó sẽ hoạt động với thứ gì đó không phải là máy chủ lưu trữ hoặc thiết bị Linux có nguồn gốc tương tự?
Svartalf

3

Tôi gặp vấn đề tương tự với LXC, tôi đã giải quyết vấn đề bắc cầu trong các thiết bị wifi. Đầu tiên bạn cần một thiết bị ethernet dự phòng trong máy tính. Mẹo nhỏ là tạo một tuyến đường từ thiết bị ethernet đến wifi.

Trong tệp máy chủ, thay đổi / etc / mạng / giao diện, chọn một mạng không sử dụng cho máy chủ ảo của bạn, tức là 10.0.0.0. Gán một IP cho giao diện ethernet dự phòng của bạn, ở đây là eth0, bắc cầu cho nó như thế này:

auto br0
iface br0 inet static
    address 10.0.0.1
    netmask 255.255.255.0
    bridge_ports eth0
    bridge_fd 0
    bridge_maxwait 0

Một khi nó được thực hiện, bạn có thể đi theo cách MASQUERADE như đã được trả lời bởi Kostyantyn ở đây trước đây. Những thứ đó phải ở trong RC.local hoặc trong một tập lệnh mà bạn phải chạy khi khởi động hoặc trước khi bắt đầu các miền ảo:

# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
# echo "1" > /proc/sys/net/ipv4/ip_forward

Trong máy chủ ảo cấu hình IP tĩnh trong / etc / mạng / giao diện. Tôi đang sử dụng mạng 10.0.0.0, tôi sẽ bắt đầu sử dụng từ .2, khi bạn tạo thêm máy chủ ảo, có thể bạn sẽ sử dụng 3, v.v. Nếu bạn có nhiều bạn có thể xem xét việc cài đặt một máy chủ dhcp cho những người đó. .1 là cổng, như được cấu hình trước đó.

auto eth0
iface eth0 inet static
    address 10.0.0.2
    netmask 255.255.255.0
    broadcast 10.0.0.255
    gateway 10.0.0.1

Cấu hình máy chủ DNS, của tôi là bộ định tuyến mạng, trong /etc/resolv.conf:

nameserver 192.168.1.1

Hi vọng điêu nay co ich


Đây là mánh khóe lớp 3 và không thực sự "bắc cầu" - thời điểm bạn đang sử dụng iptables, bạn đang định tuyến.
Svartalf

0

Tôi nghĩ những gì bạn thực sự cần không phải là một cây cầu mà là:

  • SNAT (nếu WLAN có IP tĩnh) (xem trang này )

hoặc là

  • MASQUERADE (nếu WLAN có IP động - nghĩa là thay đổi IP)

1) tạo forwarding_enable_file.shvới nội dung sau:

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

2) Chạy tệp:

sudo ./forwarding_enable_file.sh

3) trên phần còn lại của máy chủ chỉ định hộp Ubuntu của bạn là cổng GHI CHÚ: nếu một số hộp cũng đang chạy Linux, bạn có thể thực hiện bằng lệnh này:

sudo ip route add default via ubuntu-ip

trong đó ubfox-ip nên được thay thế bằng địa chỉ IP hộp ubfox của bạn, tức là 192.168.1.10

4) thử ping một số IP, tức là 8.8.8.8 từ các máy chủ khác:

ping 8.8.8.8

5) kiểm tra cài đặt DNS của bạn bằng cách ping một số tên miền, nghĩa là:

ping slivkoed.ru

6) nếu bước 4) hoạt động và 5) không, hơn là bạn gặp vấn đề với cài đặt DNS của mình. trong trường hợp như vậy chạy với quyền root:

# echo "nameserver 8.8.8.8" > /etc/resolv.conf

Chạy bước 5) một lần nữa.

Thông tin thêm về độ phân giải có thể được tìm thấy ở đây .


Phụ thuộc vào những gì bạn cần. Nếu bạn cần minh bạch (sóng tay), không, bạn không muốn điều đó. Nghiêm túc. Bạn cần có hành vi được chứng minh bằng những thứ như cầu truyền thông TEW640-MB đã nghỉ hưu của Trendnet (phiên chế độ STA được gắn với 4 cổng Ethernet.). Điều này chỉ có thể có với hoạt động ở chế độ WDS (4addr) hoặc với giả mạo MAC ebtables (không bị nhầm lẫn với những gì bạn đã đăng) - cả hai đều có những vấn đề và nỗi đau riêng.
Svartalf

-1

Bạn cần phải đưa các giao diện xuống trước khi bắc cầu cho chúng.

ifconfig eth0 xuống

ifconfig wlan0 xuống


1
Vẫn nhận được cùng một lỗi với cả hai giao diện
Zac Powell

@Zac Powell bạn có đang sử dụng Network-Manager không? Tôi đã có một số kinh nghiệm trong quá khứ mà nó có thể can thiệp. Trong trường hợp đó, bạn có thể thử dừng dịch vụ và đưa nó trở lại một lần nữa sau đó
Legionair

Vâng, tôi ổn, vậy tôi có nên thử đưa cả hai xuống và dừng quản lý mạng sau đó thực hiện thao tác lồng chim và sau đó đưa mọi thứ trở lại?
Zac Powell

vâng, với service network-manager stop, sau đó làm việc của bạn, bắt đầu lại vớiservice network-manager start
Legionair

vẫn không hoạt động: / mọi thứ đều bị tắt nhưng vẫn gặp lỗi tương tự
Zac Powell

-4
sudo iw dev wlan1 set 4addr on

Muốn giải thích vấn đề này của OP như thế nào?
Braiam

@Braiam Câu trả lời của tôi khá nhiều giải thích tại sao điều này sẽ hoạt động nếu được AP hỗ trợ.
David Schwartz

Đáng buồn thay, nó không hoạt động với nhiều AP. Về cách MIGHT giải quyết vấn đề của mình nếu nó hoạt động đúng với hầu hết các AP là nó mang lại khả năng AP thông qua việc thêm một MAC bổ sung vào số được đưa ra trong mỗi khung 802.11 để chuyển tiếp các khung không chỉ cho MAC được xác thực.
Svartalf

Từ một câu trả lời khác: serverfault.com/a/554663/280693
jhutar
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.