Cách sử dụng SSH ngoài mạng gia đình


15

Gần đây tôi đã thiết lập SSH trên Raspberry Pi của mình. Nó đã được thực hiện một cách sôi nổi, đặc biệt là khi tôi có thể điều khiển máy tính thông qua iPhone của mình với Trình kiểm tra máy chủ ứng dụng . Đáng buồn thay, điều này chỉ hoạt động thông qua mạng cục bộ.

Làm cách nào tôi có thể làm cho SSH của tôi hoạt động khi tôi ra khỏi nhà? (Tốt nhất là làm việc với ứng dụng.)


bạn có thể chuyển tiếp một cổng từ bộ định tuyến của bạn?
SteveIrwin

1
@SteveIrwin Tôi rất có thể có thể, nhưng vì tôi không biết chữ, nên tôi thích một giải pháp dễ dàng như Bản đồ cổng . Trên thực tế ... nếu tôi chia sẻ internet của Mac với Pi của mình, tôi có thể chia sẻ Cổng được chuyển tiếp không?
xxmbabanexx

thiết lập một cổng chuyển tiếp có lẽ ít nhất là dễ dàng như sử dụng Bản đồ cổng. Bạn cần cho chúng tôi biết thêm về cách thiết lập mạng LAN của bạn
John La Rooy

Đặt cược tốt nhất của bạn là cài đặt dịch vụ Weaved (www.weaved.com) và được thực hiện với nó. Tất cả các hướng dẫn khác bạn sẽ tìm thấy trên internet sẽ dẫn bạn xuống một con đường bực bội.
IgorGanapolsky

đối với bài đăng gợi ý cách sử dụng socketxp, hãy sử dụng cách sau để tải socketxp trong RPI curl -O Portal.socketxp.com/doad/arm/socketxp && chmod + wx socketxp && sudo mv socketxp / usr / local / bin thay vì linux tập tin.
jeonghoon

Câu trả lời:


20

Dưới đây là các bước tôi đã sử dụng (trên debian) mà bạn có thể thấy hữu ích.

1. Đặt IP tĩnh cho Pi.

a. Mở tệp giao diện bằng lệnh

sudo nano /etc/network/interfaces

b.Thay đổi tệp giao diện theo sau (Điều này đối với tôi Tôi không chắc chắn nếu một vài dòng có thể được loại trừ).

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2  #static ip you want for the pi
netmask 255.255.255.0
gateway 192.168.1.1    # the ip address of the router

c.Kiểm tra xem Ip có bị thay đổi hay không bằng lệnh ifconfig

2. Cài đặt DNS động

Rất có thể địa chỉ IP được chỉ định bởi ISP của bạn là động và vì vậy chúng tôi cần một cách để giải quyết các thay đổi trong địa chỉ IP. Tôi sử dụng phần mềm dnsdynamic và ddclient để đạt được điều này.

a.Đăng ký một tài khoản với dnsdynamic

b.Thêm một tên miền mới và chọn một tên và tên miền từ danh sách. Bạn có thể chọn bất kỳ tên miền có sẵn nào với sự lựa chọn tên miền phụ của bạn. Nhấp vào kiểm tra có sẵn và sau đó thêm

ảnh chụp màn hình dnsdynamic

3. Đặt ddclient trên Pi

a.Install ddclient bằng cách sử dụng lệnh

sudo apt-get install ddclient

b. Mở tệp cấu hình cho ddclient bằng lệnh sau và thêm các dòng sau.

sudo nano /etc/ddclient.conf

và thay đổi tập tin như sau.

# /etc/ddclient.conf
daemon=600
timeout=10
ssl=yes
protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
login=x@gmail.com  #userid for dnsdynamic.com
password='xxxx'      #password for the same put inside quotes
x.dnsdynamic.com  #the domain name you created

và lưu tập tin.

d. Chúng tôi muốn dịch vụ ddclient tự động bắt đầu khi khởi động lại. Làm như sau.

sudo nano /etc/rc.local

Thêm lệnh sau trước khi thoát 0 (là dòng cuối cùng)

sudo /usr/sbin/ddclient -daemon 600 -syslog

Lưu tệp. Để bắt đầu ddclient, hãy khởi động lại pi của bạn hoặc thực hiện lệnh trên trên dấu nhắc. Nó sẽ giữ cho tên miền của bạn được cập nhật với địa chỉ IP hiện tại thay đổi khi cần thiết.

4. Chuyển tiếp cổng

a. Tìm mô hình của bộ định tuyến của bạn.

b.Go để portforward.com

c.Nhập nhãn hiệu và mô hình bộ định tuyến của bạn để tìm hướng dẫn chi tiết về cổng chuyển tiếp.

d.Sau khi chọn nhãn hiệu và kiểu bộ định tuyến, Nhấp vào Hướng dẫn mặc định từ trang được chuyển hướng.

e.Trong Hộp văn bản Ip tĩnh , nhập IP tĩnh của Pi mà bạn đã cung cấp ở Bước 1.

f. Thực hiện theo các bước và chuyển tiếp cổng 22. Cổng nguồn cần phải là 22 và cổng đích có thể là bất cứ điều gì. Xin nhớ sử dụng Cổng đích khi sshing vào pi. Để tránh nhầm lẫn, tôi có xu hướng sử dụng cùng một Nguồn và Đích Hải cảng.

Nếu bạn đang làm theo hướng dẫn, Đăng nhập vào pi của bạn từ bất cứ đâu bằng cách thay thế địa chỉ IP bằng tên miền. ví dụ: tôi sử dụng pi@hometorrent.dnsdynamic.com: 22 để ssh vào pi của tôi.


Cám ơn rất nhiều! Khi tôi quay lại thăm Exeter, tôi sẽ thử nó!
xxmbabanexx

1 Great câu trả lời, tuy nhiên, bạn có thực sự cần phải sử dụng sudotrong /etc/rc.local, không phải là đang chạy với quyền root?
HeatfanJohn

Do đó, hoàn toàn làm hỏng cấu hình Ngrok và Weaved của tôi. Bây giờ tôi không thể kết nối được!
IgorGanapolsky

2

Đầu tiên bạn sẽ muốn thiết lập chuyển tiếp cổng. Mỗi bộ định tuyến hơi khác nhau, vì vậy bạn sẽ phải tìm kiếm thông tin cụ thể cho bộ định tuyến của mình.
các hướng dẫn cách chuyển tiếp cổng chung có thể hoạt động cho hầu hết các bộ định tuyến, nhưng tôi khuyên bạn nên tìm hướng dẫn cho mô hình bộ định tuyến thực tế của mình.

Đặt một cổng đáng nhớ để liên kết với pi mâm xôi của bạn, chẳng hạn như 23456 hoặc một cái gì đó. Hãy cẩn thận để không ghi đè số cổng phổ biến .

Cuối cùng, sử dụng ssh làm như sau:

$ ssh -p 23456 user@IP

Ở đâu:


Tại sao tôi không thể sử dụng cổng 22 thay vì 23456 tùy chỉnh?
IgorGanapolsky

1
@IgorGanapolsky bạn có thể làm điều đó, nhưng 1) nếu bạn có một máy tính khác mà bạn muốn kết nối thông qua SSH bên ngoài nhà của bạn, sẽ có một cuộc xung đột và 2) rủi ro hơn vì nhiều "tin tặc" cố gắng đăng nhập qua cổng 22 , vì vậy, tắt nó thường được khuyến nghị trên các máy chủ
meneldal

2

Truy cập RaspberryPi (hoặc thậm chí máy tính xách tay / máy chủ) từ bên ngoài mạng gia đình của bạn (nghĩa là từ internet) không phải là một nhiệm vụ dễ dàng, bởi vì máy tính xách tay gia đình hoặc RaspberryPi của bạn chỉ có địa chỉ IP cục bộ (trong phạm vi 10.xxx hoặc 192.168.xx phạm vi). Nó không có địa chỉ IP công cộng có thể nhìn thấy từ Internet.

Câu trả lời đơn giản cho câu hỏi của bạn là sử dụng các dịch vụ trực tuyến miễn phí như SocketXP , cung cấp điểm cuối đường hầm công cộng an toàn để SSH vào RaspberryPi của bạn từ bên ngoài mạng gia đình.

SocketXP cung cấp một cách đơn giản, an toàn và dễ dàng để truy cập RaspberryPi tại nhà của bạn từ mạng bên ngoài. SocketXP không yêu cầu bạn hack bất kỳ cài đặt nào trong bộ định tuyến WiFi. Nó hoạt động ra khỏi hộp. Để biết cách thiết lập RaspberryPi của bạn thành SSH từ bên ngoài, hãy đọc blog này về cách từ xa SSH vào RaspberryPi của bạn bằng cách sử dụng SocketXP.

Cách thiết lập SocketXP:

Bước 1 : Cài đặt ứng dụng khách SocketXP trên RaspberryPi của bạn bằng lệnh sau.

$ curl -O https://portal.socketxp.com/download/linux/socketxp && chmod +wx socketxp && sudo mv socketxp /usr/local/bin

Bước2: Kết nối máy khách SocketXP với Dịch vụ đám mây SocketXP bằng lệnh sau. Bạn cần đăng ký tại https://portal.socketxp.com để nhận mã xác thực duy nhất của bạn.

$ socketxp -register "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk1MTg0MDAsImlkIjoiZ2FuZXNodmVscmFqYW5AZ21ha6K208n0.cB2uYevpH4lWIQGQUJdQ0eiEDqS8OiP_YOiqernnui3rjjadfadsfsfas34"

Bước 3 : Nhận điểm cuối đường hầm công cộng để truy cập RaspberryPi của bạn từ internet.

$ socketxp -connect tcp://localhost:22

Tunnel Access -> tunnel.socketxp.com:35277

Bước 4 : SSH vào RaspberryPi của bạn từ internet bằng lệnh sau.

$ ssh raspberry-username@tunnel.socketxp.com -p 35277

trong đó "raspberry-username" là tên người dùng / mật khẩu bạn sử dụng để đăng nhập SSH vào RaspberryPi.


1

Câu hỏi này đã cũ, vì thời gian trôi qua sẽ có ít cơ hội bạn nhận được địa chỉ IPv4 có thể truy cập công khai. Nhiều khả năng bạn đứng sau CGNAT, nghĩa là bạn chia sẻ một IPv4 công khai duy nhất với các khách hàng khác của ISP. Vì vậy, không thể thực hiện chuyển tiếp tới PI của bạn hoặc bất cứ điều gì khác.

Nếu bạn có IPv6, bạn có thể cung cấp cho PI của mình một địa chỉ tĩnh và cho phép truy cập nó trên bộ định tuyến của bạn. Nhiều nhà cung cấp dịch vụ di động hiện cung cấp IPv6 cho điện thoại. Các ISP cũ "trên đất liền" (Fiber, DSL, dỗ, v.v.) thường kéo chân họ.

Bạn cũng có thể nhận được một VPS giá rẻ (máy chủ riêng ảo) với một IPv4 công khai ở đâu đó trên đám mây và tạo một đường hầm SSH từ PI đến VPS.


0

Trước câu trả lời của phalt, bạn nên kiểm tra một trong các dịch vụ DNS động, chẳng hạn như Không có IP . Chúng cho phép bạn truy cập mạng gia đình dưới tên máy chủ tĩnh, mặc dù địa chỉ IP của bạn có thể thay đổi hàng ngày, do DSL hoặc nhà cung cấp cáp ngắt kết nối với bạn. Họ cũng có một trang bắt đầu tốt đẹp , cũng giới thiệu cho bạn cách thiết lập bộ định tuyến phù hợp.

Bạn có thể muốn cài đặt inadyngói trên Raspberry Pi để cập nhật các mục DNS No-IP của mình, khi IP thay đổi. Bạn có thể làm điều này bằng cách chạy:

sudo apt-get install inadyn

Từ phần chưa đọc README tôi đã thực hiện cuộc gọi mẫu này:

inadyn --dyndns_system default@no-ip.com -u USER-p PASS -a HOST

Hi vọng điêu nay co ich.


No-Ip có DUC (ứng dụng khách cập nhật động), điều này sẽ đảm bảo địa chỉ IP của bạn không thay đổi.
IgorGanapolsky

0

Bổ sung cho câu trả lời của steve irwin:

Bước 1:

nếu bạn kết nối qua wlan, hãy sử dụng:

iface wlan0 inet static
wpa-ssid "xxx" #<=your ssid
wpa-psk "yyy"  #<=your pw
address 192.168.1.xxx #<=preferred static ip (xxx<255)
netmask 255.255.255.0
gateway 192.168.1.1 #<=router's ip

Bước 2:

Sau khi bạn thay đổi ở trên, bạn cần khởi động lại networking:

sudo /etc/init.d/networking restart

Tôi cũng đã thêm 2 dòng trước khối tĩnh, auto wlan0 allow-hotplug wlan0 Tôi đã tìm thấy nó trong bài đăng này raspberrypi.stackexchange.com/a/10320/10148 Tôi cũng đã thử làm điều đó mà không có chúng nhưng không được.
XandruCea

Câu trả lời này nên được coi là lỗi thời do những thay đổi trong cấu hình mạng và hệ thống init của Raspbian.
goldilocks

0

Ngoài ra, một số bộ định tuyến có hỗ trợ tích hợp cho một số dịch vụ DNS động, bạn có thể bật tùy chọn này (nếu có) trong bộ định tuyến của mình để tránh cài đặt máy khách trên PI của bạn (và tiết kiệm một chút chi phí trong khi sử dụng nó).


0

Vì vậy, bạn có một máy chủ ssh (Raspberry PI) phía sau tường lửa (bộ định tuyến của bạn) và bạn muốn kết nối nó từ bất cứ đâu. Giả sử máy chủ ssh của bạn được thiết lập đúng, tức là chạy 'ssh username @ localhost date' trên Raspberry của bạn hiển thị ngày / giờ hiện tại.

Bạn phải giải quyết hai vấn đề:

  • Bộ định tuyến của bạn phải chuyển tiếp một cổng cố định đến cổng ssh raspberry của bạn (thường là 22).
  • Bạn phải biết địa chỉ IP công cộng của bộ định tuyến (thường thay đổi trên bộ định tuyến kết nối lại và nhiều nhất là một lần trong 24h).

Chuyển tiếp cổng & DynDNS

Các giải pháp tồn tại (như đã được chỉ ra bởi những người khác):

  • Mở một cổng chuyển tiếp trên bộ định tuyến của bạn là dành riêng cho từng bộ định tuyến và thường được thực hiện trên trang web cài đặt bộ định tuyến.
  • Xác định ip hiện tại được thực hiện dễ dàng nhất bởi một trang web bên ngoài ( https://www.google.com.vn/search?q=whats+my+ip ). Nếu IP của bạn thay đổi thường xuyên, bạn có thể nhận được một mục nhập dns động ( https://www.noip.com/ , https://dyn.com/dns/ , v.v.).

Nếu thiết lập chính xác, có thể kết nối pi rasbperry của bạn với:

ssh username@[yourIP] -p [port] 
# or using dyndns 
ssh username@myname.dyndns.org -p [port]

Sử dụng sshhub.de

Một giải pháp rất thuận tiện khác, không được đề cập cho đến nay, là SSHHub (từ chối , tôi là tác giả). Nó sử dụng chuyển tiếp của ssh để truy cập Rasperry PI của bạn từ bất cứ đâu. Nó đáng tin cậy, miễn phí và khá đơn giản để thiết lập . Đăng ký một lần:

ssh info@sshhub.de register

chạy trên Raspberry PI của bạn:

while true; do ssh [username]@sshhub.de -R 22:localhost:22 -N -o ServerAliveInterval=10; sleep 10; done

... và đó là nó! Bạn có thể kết nối Raspberry Pi từ bất cứ đâu:

ssh -J [username]@sshhub.de localhost

Xin chào và chào mừng đến với Raspberry Pi! Vui lòng tham quan và ghé thăm người trợ giúp để xem mọi thứ hoạt động ở đây như thế nào. Cảm ơn bạn đã đóng góp nhưng xin lưu ý rằng chúng tôi vui lòng yêu cầu bạn tiết lộ liên kết của bạn trong câu trả lời của bạn . (Tôi cho rằng bạn là tác giả của phần mềm được đề xuất.)
Ghanima

Cám ơn đã chỉ tôi hướng đi đúng. Tôi là tác giả. Tôi chắc chắn muốn cung cấp giá trị với câu trả lời của tôi cho những người tìm kiếm một giải pháp. Và tôi hy vọng tôi cũng như sshhub.
Oliver

0

Bạn có thể sử dụng VPN để cho phép truy cập vào pi của mình. OpenVPN là một giải pháp, đòi hỏi bạn phải có một máy tính có thể truy cập từ internet (một cổng đến). Tuy nhiên, miễn là bạn có một máy tính có thể truy cập, các máy tính khác không cần phải là máy khách có thể là máy khách của máy chủ OpenVPN.

Một tùy chọn khác là sử dụng một dịch vụ như ZeroTier, cung cấp các máy chủ tập trung để tạo VPN, do đó bạn không cần phải chạy máy chủ của riêng mình. Điều này cũng miễn phí.


Một lựa chọn rất tốt là sử dụng dây bảo vệ .
Ingo
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.