
답변1
예, 할 수 있습니다. 그리 어렵지도 않습니다. 무선 카드와 이더넷 포트가 있는 노트북이 있습니다. "크로스오버" 이더넷 케이블을 통해 Arch Linux를 실행하는 RapberryPi를 연결했습니다. 이것이 필요할 수 있는 특별한 것 중 하나입니다. 모든 이더넷 카드가 기계 간 직접 연결을 수행할 수 있는 것은 아닙니다.
또 다른 까다로운 부분은 IP 주소 지정입니다. 이것을 설명하는 것이 가장 좋습니다. 여기 내 작은 설정 스크립트가 있습니다. 이번에도 enp9s0은 노트북의 이더넷 포트이고 wlp12s0은 노트북의 무선 장치입니다.
#!/bin/bash
/usr/bin/ip link set dev enp9s0 up
/usr/bin/ip addr add 172.16.1.1/24 dev enp9s0
sleep 10
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE
iptables -A FORWARD -o enp9s0 -i wlp12s0 -s 172.16.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
dhcpd -cf /etc/dhcpd.enp9s0.conf enp9s0
스크립트는 이더넷 카드의 고정 IP 주소인 172.16.1.1을 설정한 다음 커널 모듈을 로드하여 NAT를 설정합니다. 랩톱에서 IP 라우팅을 켜고 iptables
무선 카드에서 이더넷으로 패킷을 라우팅하는 반마법을 수행하며 그 반대의 경우도 마찬가지입니다.
dhcpd
Raspberry Pi가 원하는 것이기 때문에 IP 주소를 제공하기 위해 이더넷 포트에서 실행했지만 정적 라우팅, DNS 서버 및 NTP 서버와 함께 워크스테이션에서 정적 주소를 수행할 수도 있습니다 .
/etc/dhcpd.enp9s0.conf
해당 경로를 따라갈 경우를 대비해 파일은 다음과 같습니다.
option domain-name "subnet";
option domain-name-servers 10.0.0.3;
option routers 172.16.1.1;
option ntp-servers 10.0.0.3;
default-lease-time 14440;
ddns-update-style none;
deny bootp;
shared-network intranet {
subnet 172.16.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
pool { range 172.16.1.50 172.16.1.200; }
}
}
IP 주소 선택은 매우 중요합니다. 노트북에서 나오는 이더넷 케이블로는 172.16.1.0/24를 사용했습니다. 노트북의 무선 카드는 192.161.1.0/24 로 끝납니다. 랩탑의 무선 IP 주소를 확인하고 이더넷 카드에 대한 다른 서브넷을 선택해야 합니다. 또한 "bogon" 또는 "라우팅할 수 없는" 네트워크 중 하나를 선택해야 합니다. 내 예에서 172.16.1.0/24는 192.168.1.0/24와 마찬가지로 공식적으로 라우팅할 수 없는 IP 주소 범위에 속하며, 10.0.0.3 주소도 dhcpd.enp9s0.conf
DNS 서버 및 NTP 서버에 제공됩니다. 설정에 적합한 것이 무엇인지 알아내려면 머리를 써야 합니다.
답변2
가능합니까? 전적으로. 당신이 해야 할 일은 IP 전달, 라우팅 또는 노트북의 이더넷 포트에서 노트북의 WiFi로 또는 그 반대로 패킷을 이동하는 다른 (간단한) 방법을 구성하는 것뿐입니다. 좋은 생각인가요? 아마도 그렇지 않을 것입니다. 네트워크 관리자가 당신에게 약간 화를 낼 수도 있습니다.
답변3
Wikipedia에 따르면 이더넷 포트 중 하나가 기가비트이면 일반 케이블이 작동하고 크로스가 필요하지 않으며 양쪽에 기가비트가 있고 일반 케이블이 작동합니다.
질문은 2016년에 제기되었으므로 네트워크 관리자가 두 Linux 시스템 모두에서 실행되고 있다고 가정하고 GUI를 사용하여 ip-s를 설정할 수 있습니다. 그렇지 않은 경우 사용자 정의 설정을 수행하고 명령 프롬프트에서 ip를 설정하는 방법을 알고 있으므로 나는 그 세부 사항을 생략합니다.
케이블로 연결하면 노트북과 워크스테이션의 이더넷과 관련된 네트워크 인터페이스 이름이 GUI에 표시됩니다.
워크스테이션(및/또는 이더넷을 통한 랩톱)을 정기적으로 다른 네트워크 장비에 연결하는 데 관심이 없다고 가정하면 이더넷 인터페이스 모두에 고정 IP를 설정할 수 있습니다.
고정 IP의 서브넷을 Wi-Fi와 동일하지 않게 설정하세요. 예를 들어 Wi-Fi가 192.168.1.0/16이고 192.168.2.1 및 192.168.2.2로 설정된 경우 IP의 마지막 '번호'만 다르기 때문에 서브넷 마스크는 255.255.255.0입니다. , 워크스테이션에서 DNS(IP뿐만 아니라 이름으로 사이트 열기)를 사용할 수 있으려면 워크스테이션의 DNS를 노트북의 Wi-Fi와 동일한 DNS IP로 설정해야 합니다.
노트북에서 IP 전달을 활성화해야 합니다.
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
아마도 노트북의 네트워크 관리자는 Wi-Fi보다 이더넷의 품질이 더 좋다고 생각하기 때문에 기본적으로 모든 것을 이더넷으로 보내려고 시도할 것이며 이더넷을 설정한 후에는 인터넷이 끊어질 것입니다. Wi-Fi를 다시 사용하려면 랩톱에서 위치 /etc/NetworkManager/
추가 라인 의 이더넷 연결과 관련된 파일(이더넷용 네트워크 관리자 GUI에 표시되는 이름)의 [ipv4] 섹션에 필요합니다.
never-default=true
(귀하의 GUI에 이더넷에 대한 "이 연결의 리소스에만 사용" 확인란이 있는 경우 - 광산에서는 연결 속성의 ip4 섹션에 있으므로 대신 사용할 수 있습니다.)
마지막으로 IP 테이블 규칙이 기본적으로 모든 것을 ACCEPT로 유지한다고 가정하면 워크스테이션의 패킷은 인터넷으로 이동하지만 하나의 명령으로 랩톱에서 NAT 규칙을 설정할 때까지 랩톱으로만 이동하는 방법을 찾지 못합니다(여기서 eth0은 이름이어야 합니다). Wi-Fi 연결의 이름은 )을 통해 확인할 수 있습니다 sudo ifconfig
.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
이후에도 작동하지 않으면 네트워크 관리자를 다시 시작해 보세요.
sudo service network-manager restart
모든 준비가 완료되어야 합니다.