Mục tiêu: ssh raspi
nên hoạt động bên trong mạng LAN và trên Internet công cộng.
Để làm điều này, bạn cần đảm bảo rằng tên đó phân giải thành IP bên trong mạng LAN và IP công cộng từ bên ngoài.
Đầu tiên, bạn nên có được một tên miền như raspi.yourdomain.com
. Hãy xem http://freedns.afston.org/ để biết các tên miền miễn phí cho mục đích sử dụng. Trỏ tên miền vào IP công cộng của bạn
Đối với mạng LAN, tôi khuyên bạn nên chạy DNSMasq. Chương trình cơ sở DD-WRT mở tích hợp chặt chẽ với DNSMasq, sử dụng nó cho DHCP và DNS. Bạn chỉ cần nói với miền tìm kiếm của bạn ("yourdomain.com") và nó sẽ tự động gán tên DNS dựa trên tên được yêu cầu của mỗi khách hàng. Để làm cho công việc này, nên đọc / etc / hostname của raspi raspi
.
Khi điều này được thiết lập, raspi.yourdomain.com sẽ phân giải IP cục bộ trên mạng LAN của bạn (chỉ cần đảm bảo rằng bạn đang sử dụng DNS cục bộ trên tất cả các máy của mình).
Bây giờ, có lẽ bạn không muốn đưa cổng 22 ra internet công cộng, bởi vì bạn sẽ nhận được rất nhiều lưu lượng truy cập. Vì vậy, bạn có thể có bộ định tuyến của mình phơi bày raspi: 22 như một số cổng khác, giả sử 1234. Để sử dụng cùng một cổng trên cả mạng công cộng và mạng nội bộ, bạn có thể thêm quy tắc chuyển hướng cổng vào raspi. Trên Linux:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1234 -j REDIRECT --to-port 22
sudo sh -c 'iptables-save > /etc/iptables/iptables.rules'
(thay đổi eth0 thành tên của giao diện mạng của bạn như được hiển thị bởi ip link
hoặc ifconfig
, và 1234 sang cổng công cộng của bạn)
Bây giờ bạn có thể ssh -p 1234 raspi.yourdomain.com
từ cả công cộng và LAN.
Bạn có thể thêm một mục vào ~ / .ssh / config trên máy khách của mình để rút ngắn điều này thành chỉ ssh raspi
, như được đề cập bởi @DopeGhoti.
Nếu bạn muốn hiển thị các cổng SSH của máy bổ sung trên cùng một IP công cộng, chỉ cần lặp lại quy trình với một tên DNS và cổng công khai khác. Chúc mừng!