ก่อนอื่นคุณต้องตัดสินใจว่า VM ของคุณเชื่อมต่อกับเครื่องโฮสต์ของคุณผ่านการเชื่อมต่อบริดจ์หรือผ่าน NAT แต่วิธีอื่น ๆ คุณจะต้องใส่ที่อยู่ IP ของ VM ในการเชื่อมต่อเพื่อให้สามารถเชื่อมต่อกับ ip ในการทำงานของเทอร์มินัล VM คำสั่งนี้จะแสดงที่อยู่ IP ของเครื่อง (และไม่มี 127.0.0.1 ไม่ใช่ที่อยู่ IP ของเครื่อง)
VM # ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:d9:16:b3 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.1 scope global eth0
valid_lft forever preferred_lft forever
ในกรณีนี้ที่อยู่ IP ของฉันจะเป็น 10.0.2.15
ก่อนอื่นให้แน่ใจว่าคุณสามารถสื่อสารในระดับพื้นฐานกับ VM เปิดหน้าต่างเทอร์มินัลในโฮสต์ของคุณและลอง ping VM
HOST # ping 10.0.2.15
PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
64 bytes from 10.0.2.15: icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from 10.0.2.15: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 10.0.2.15: icmp_seq=3 ttl=64 time=0.099 ms
หากคุณได้รับผลมดตรวจสอบให้แน่ใจว่าคุณมีบริการ ssh ที่ทำงานบน VM ในเทอร์มินัลในประเภท VM ของคุณเป็นรูต
VM # netstat -lnpt | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2361/sshd
สิ่งนี้บอกว่าเรามีบริการ / กระบวนการที่มี PID (2361) ชื่อ sshd (OpenSSH daemon) กำลังฟังพอร์ต 22
คุณสามารถทดสอบว่าบริการทำงานอย่างถูกต้องหรือไม่โดยลองใช้ ssh จาก VM ด้วยตนเอง
VM # ssh 127.0.0.1
ถัดไปคุณตั้งชื่อเพื่อให้แน่ใจว่าคุณไม่ได้ปิดกั้นพอร์ต 22 ในไฟร์วอลล์ / iptables ของคุณฉันไม่อยากเชื่อเลย แต่ลองดูสิ ใน VM พิมพ์คำสั่งนี้เพื่อแสดง iptables
VM # iptables -nvL INPUT
ในผลลัพธ์คุณควรมีบรรทัดแบบนี้:
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW