CentOS7을 실행하는 노트북에서 SSH를 통해 Raspberry Pi 3 Model B V1.2에 연결하려고 합니다. 이더넷 케이블을 통해 서로 연결했지만 노트북이 Raspi를 인식하지 못합니다. 그래서 StackExchange에서 비슷한 질문으로 사용자가 제공한 다음 명령을 실행해 보았습니다.
$cat /proc/net/arp
IP address HW type Flags HW address Mask Device
또한 StackExchange를 검색하는 동안 찾은 명령을 사용하여 nmap으로 스캔을 시도했습니다.
$nmap 192.168.1.1-20
Starting Nmap 7.70 ( https://nmap.org ) at XXXX-XX-XX XX:XX XXX
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap done: 20 IP addresses (0 hosts up) scanned in 0.04 seconds
제한 요인:
- HDMI 입력이 가능한 외부 모니터가 없습니다.
- 라우터가 없습니다.
편집: 지금까지 두 가지를 시도했습니다.
사용자가 답변 중 하나에서 지시한 대로 내 Raspi와 이더넷 포트에 IP 주소를 수동으로 할당해 보았습니다.
$ssh 192.168.1.10
ssh: connect to host 192.168.1.10 port 22: Connection refused
다른 사용자가 답변에서 말했듯이 랩톱에 DHCP 서버를 설치해 보았습니다.
systemctl start dhcpd
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.
답변1
또는 Pi를 휴대폰에 연결하고 USB를 통해 연결할 수도 있습니다. 난 이걸 할거야
Windows에서 Android 사용:
- adb, 드라이버, nmap 및 scrcpy 다운로드
- USB 케이블을 통해 Android 기기를 PC에 연결하세요.
- USB 디버깅 활성화(필요한 경우 먼저 개발자 옵션 활성화)
- 명령 프롬프트 열기
- Android 화면에 입력
adb devices
하고 팝업을 눌러 RSA 키를 수락하세요. - 유형
adb tcpip 5555
. 이를 통해 TCP/IP를 통해 Android에 연결할 수 있습니다. - Android가 Wi-Fi에 연결되어 있는지 확인하세요. 또는 PC의 Wi-Fi 카드를 사용하여 액세스 포인트를 만들고 Android Wi-Fi 컨트롤을 통해 연결하세요.
- 명령 프롬프트에서
ipconfig
AP의 IP 주소를 입력하고 찾습니다. - 이제 입력하면 Android의 IP가 제공됩니다.
nmap (your IP)/24 -p 5555 -open
- 유형
adb connect (Android IP) 5555
- 유형
scrcpy
. 이제 PC에서 안드로이드 화면을 볼 수 있습니다. 또한 키보드와 마우스를 사용하여 Android를 제어할 수도 있습니다. 이것이 100% 필요하다고는 말할 수 없지만, 저는 시각적으로 이런 일을 하는 것을 좋아합니다. - 터미널 에뮬레이터를 열거나 다른 명령 프롬프트를 열고 다음을 입력하세요.
adb shell
- 두 가지 방법 중 하나(scrcpy를 통한 에뮬레이터 또는 adb를 통한 쉘) 유형
ifconfig
- Android의 IP를 찾고 찾을 때까지 각 IP에서 ssh 또는 netcat을 시도하는 스크립트를 작성합니다(Android USB 테더링을 사용하면 192.168.37.2 또는 .100일 수 있지만 IP 블록은 모든 IP에 설정되지 않습니다. 테더링을 수행하려면) 장치가 IP 주소를 찾아야 하는 이유입니다)
- 그리고 당신은 연결되었습니다!
또는 adb가 옵션이 아니라고 가정하면 Android에 ssh 서버, termux, VNC 서버 또는 ssh 서버를 설치하고 그런 방식으로 Android의 USB 테더링 서브넷에 액세스할 수 있습니다.
이 작업을 원하지 않으면 Wireshark 또는 tcpdump를 사용하여 Pi에 할당된 IP가 있는지 확인할 수 있습니다. eth0이 이더넷 카드라고 가정하고 이더넷 카드( )에서 패킷을 덤프하면 됩니다 sudo tcpdump -i eth0
. 패킷에 IP가 포함된 항목이 없으면 DHCP를 사용하여 Pi에 IP를 할당해야 합니다. 본질적으로 이것이 제가 adb 방법을 사용하는 것을 권장하는 이유입니다. 왜냐하면 USB 테더링을 사용할 때 Android에는 연결된 모든 장치에 IP를 할당하는 DHCP 서버가 있기 때문입니다. 시도해 볼 수 있는 다른 방법으로는 Pi용 USB WiFi 및/또는 Bluetooth 카드를 구입하는 것입니다. 또한 일반적으로 Goodwill 매장에서 2~10달러에 라우터를 찾을 수 있어 많은 시간을 절약할 수 있습니다.
참고: 솔직히 생각한 지 오래되었고 무엇이 변경되었는지, 언제/이것이 여전히 적용되는지는 알 수 없습니다. 하지만 과거에는 "크로스오버 케이블" 유형의 이더넷 케이블을 사용하여 직접 연결해야 했습니다. 컴퓨터 두 대. 크로스오버 케이블은 두 개의 와이어가 크로스오버 케이블의 서로 다른 위치에 있고 라우터가 필요하지 않다는 점에서 다릅니다. 이것이 문제일 수도 있지만 이것이 오늘날의 독특한 상황에만 적용된다고 생각하기 때문에 의심스럽습니다(그러나 앞서 말했듯이 그러한 상황이 무엇으로 일반화되는지는 모르겠습니다).
어쨌든, 이것이 누군가에게 도움이 되기를 바랍니다(비록 몇 년 늦었지만).
답변2
존재하지 않는 것을 찾고 계신 것 같아요. 귀하의 PI에는 IP 주소가 없을 수 있습니다.
요즘에는 Raspberry PI의 내부 WIFI를 연결하고 검색하도록 구성하는 것이 실제로 더 쉬울 수도 있습니다. 직접 케이블을 사용하여 이 작업을 수행하려면 다음 사항을 고려해야 합니다.
첫 번째 문제는 케이블일 수 있습니다. 예전에는 PC에서 PC로 유선으로 연결할 때 이더넷 장치가 감지되지 않는 문제가 있었습니다.크로스오버 케이블"이를 달성하려면 스위치(및 라우터)가 역방향으로 연결됩니다. 즉, 스위치나 라우터와 경로를 교차할 필요가 없습니다. 최신 PC는 일반적으로 이를 자동으로 감지할 수 있지만 보장되지는 않습니다.
둘째, 라우터가 없으면 불가능합니다.동적 호스트 구성 프로토콜서버는 IP 주소를 할당합니다. 나는 Windows가 IP만 선택할 것이라고 믿지만 Linux와 귀하의 PI는 그렇게 믿지 않습니다.
다행히 랩탑과 PI에 IP 주소를 정적으로 할당할 수 있습니다. 아마도 파이에서 가장 쉬운 방법은 다음을 편집하는 것입니다 /etc/network/interfaces
.
auto eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
센토스는 잘 모르겠지만...이 링크는 제안합니다... /etc/sysconfig/network-scripts/ifcfg-eth0
:
DEVICE=enp3s0
ONBOOT=yes
IPADDR=10.0.0.20
NETMASK=255.255.255.0
CentOS에서 LAN 장치 이름을 확인하는 것을 잊지 마세요. 명령줄에 입력하여 이 작업을 수행할 수 있습니다 ip address
. 그러면 다음과 같은 여러 장치가 나열됩니다.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 11:21:07:02:2f:10 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 83996sec preferred_lft 83996sec
위의 내 네트워크 장치 이름은 입니다 enp0s3
.
답변3
CentOS7을 실행하는 노트북에서 SSH를 통해 Raspberry Pi 3 Model B V1.2에 연결하려고 합니다.이더넷 케이블을 통해 서로 연결했습니다.그런데 노트북이 Raspi를 인식하지 못합니다... 노트북에서 SSH를 통해 Raspi에 연결하는 방법을 제안해주세요
그래서 SSH는규약. 이것은 TCP/IP를 사용하여 이더넷 연결을 통해 발생하는 통신 방법입니다. 즉, Rasb_Pi가 올바르게 네트워크에 연결되지 않은 것 같습니다. 이것이 주요 문제입니다.
나의 충고:
- Rasbery pi에는 모니터가 없으므로생각하다사전 구성되어 있으며 DHCP를 사용하고 있습니다. 문제 없습니다. 이는 네트워크 케이블이 연결되면 자체적으로 IP 주소를 얻기 위해 DHCP 서버를 찾는다는 의미입니다.
- DHCP 서버가 필요한 문제를 해결하려면 무언가를 연결할 수 있습니다라우터(가정용 라우터는 인터넷 서비스 제공업체에서 제공합니다.) DHCP를 제공합니다...
- 또는 랩톱과 rasb_pi가 직접 연결된 경우(완전히 괜찮음) 랩톱의 CentOS에서 소프트웨어를 통해 DHCP 서버를 설정해야 합니다. 그러면 검색할 때 rasb_pi에 IP 주소가 제공됩니다. . 네트워크 케이블이 연결되어 있습니다.
또한 Centos의 Wireshark와 같은 소프트웨어를 사용하여 rasb_pi가 노트북에 연결된 동안 네트워크를 스캔하고 dhcp를 통해 IP 주소를 얻지 못했을 때 rasb_pi가 연결된 169.254.xx IP 주소를 추론해 볼 수도 있습니다.
파이의 IP 주소를 아는 경우에만 SSH로 연결할 수 있습니다. 마치 내가 당신에게 무언가를 메일로 보내려고 하는 것처럼, 먼저 당신의 주소를 모르면 그렇게 할 수 없습니다.
답변4
IP 주소를 RaspPI에 자동으로 전달하려면 CentOS에서 dhcp 서버를 구성하고 실행해야 합니다. 이후에 케이블을 연결할 스위치가 없는 경우 이더넷 크로스오버 케이블을 사용하여 CentOS 이더넷 rj45 포트를 RaspPI의 RJ45 포트에 연결해야 합니다. 따라서 RaspPI에는 IP 주소가 있고 CentOS는 ping을 수행하고 SSH에 연결할 수 있습니다(사용자/비밀번호를 알고 있는 경우).