Thiết lập SSH qua internet trên Pi của tôi


16

Đây có thể là một câu hỏi đơn giản, nhưng vì tôi đã đọc thông tin mâu thuẫn từ một số tài nguyên (những gì mâu thuẫn trên internet?) Tôi muốn biết liệu tôi có làm mọi thứ tôi phải làm không.

Vì vậy, tôi muốn thiết lập kết nối SSH tới RasPi của mình để tôi có thể truy cập nó qua internet.

  1. Tôi bắt đầu bằng cách kích hoạt SSH trên Pi, chạy Raspbian, sử dụng raspi-configcông cụ.
  2. Sau đó, tôi đã cài đặt ứng dụng khách no-ip.com trên Pi của mình để có tên máy chủ trỏ đến địa chỉ IP động của tôi.
  3. Tôi đã tra cứu ip LAN trên quả mâm xôi của mình bằng cách sử dụng ifconfig
  4. Cuối cùng, trong tiện ích cấu hình của bộ định tuyến, dưới chuyển tiếp cổng, tôi đã bật chuyển tiếp cổng 22 trong cả TCP và UDP sang ip cục bộ của pi.

Sau này, tôi dường như không thể SSH đến pi của mình qua internet. Nó hoạt động khi tôi cố gắng kết nối bên trong mạng LAN của mình bằng ip cục bộ, nhưng không sử dụng tên máy chủ hoặc địa chỉ ip internet. Tôi cũng đã thử kết nối từ một địa điểm khác và không có gì hoạt động.

Câu hỏi của tôi: Tôi có thiếu bước nào không? Có tập tin cấu hình nào tôi nên chỉnh sửa trên pi của mình để mọi thứ hoạt động không?


Vui lòng bao gồm đầu ra của iptables -LPi của bạn.
deed02392

1
Bạn đã giải quyết vấn đề này chưa? Nếu vậy, bạn có thể đánh dấu câu trả lời đã giải quyết nó hoặc tạo một câu trả lời tự nêu rõ những gì bạn đã làm và sau đó đánh dấu đó là câu trả lời? Điều đó sẽ rất tuyệt khi chúng tôi đang cố gắng đưa trang web Q: Tỷ lệ lên và câu hỏi này dường như đã bị bỏ lại trong một thời gian mà bạn không cảm động @Zeta. Cảm ơn!
RPiAwesomeness 23/03 '

Tôi đang sử dụng no-ip.com để kết nối với Pi của tôi qua internet cho web và ssh để có thể, có thể bộ định tuyến hoặc ISP của bạn đang chặn lưu lượng truy cập đến?
Alastair Montgomery

Điều này nghe có vẻ giống như một bộ định tuyến không hỗ trợ NAT loopback.
flakeshake

tôi tìm thấy liên kết này: raspberryanywhere.com Có lẽ nó có thể giúp đỡ. Tôi đã sử dụng dịch vụ từ vài tuần và nó hoạt động rất tốt! Liên kết cung cấp một teamviewer phần mềm đơn giản muốn truy cập bảng mâm xôi của bạn mọi lúc mọi nơi. Hơn nữa, bạn có thể sử dụng máy khách SSH thông thường của mình; họ chỉ cung cấp một địa chỉ ảo để kết nối với bảng của bạn thông qua SSH hoặc HTTP. Nó đáng để thử cho chắc chắn!
Stefano Stefano

Câu trả lời:


12

Nếu bạn chỉ có kế hoạch kết nối với Raspberry Pi thông qua SSH qua internet, có lẽ ngrok.com có ​​thể phù hợp với vấn đề của bạn một cách thoải mái nhất.

Nó chuyển tiếp (các) cổng của bạn với một loại đường hầm đảo ngược và thậm chí có thể giúp vượt qua tường lửa hoặc hạn chế của ISP của bạn. Bạn phải đăng ký (miễn phí) trên trang web để chuyển tiếp lưu lượng TCP.

Tôi không liên kết với dự án này dưới bất kỳ hình thức nào; Tôi chỉ sử dụng nó để thực hiện cùng một ý tưởng (trong trường hợp của tôi là chuyển tiếp OpenVPN-Server) và cho đến nay không gặp phải bất kỳ vấn đề nào.


Tôi cũng gặp vấn đề này và sử dụng phục vụ.net thậm chí còn dễ hơn ngrok. Hoàn toàn miễn phí, 0 config chỉ cần dán vào lệnh 22 cổng với bí danh tùy chỉnh và sau đó kết nối.
Madhava Jay

3

Một phần vấn đề của bạn có thể là do Pi đang sử dụng IP động từ DHCP trên bộ định tuyến của bạn, việc chuyển tiếp cổng mà bạn thiết lập không hoạt động, vì IP cục bộ của Pi đã thay đổi.

Cách đơn giản nhất để khắc phục điều này (ít nhất là tôi đã thấy) là thiết lập một IP tĩnh. Nó tương đối đơn giản, miễn là bạn không bận tâm về một tập tin cấu hình. Bạn có thể đọc thêm một chút chuyên sâu ở đâyđây . Tôi cũng sẽ giải thích cách đơn giản dưới đây:

  1. Kết nối với Pi của bạn thông qua SSH trong mạng gia đình của bạn hoặc qua màn hình, đều hoạt động.

  2. Lấy một cây bút và một số giấy, bạn sẽ viết ra một số thông tin.

  3. Chạy lệnh ifconfig. Tôi biết bạn đã chạy nó, nhưng chúng tôi cần thu thập thêm một chút thông tin rằng IP cục bộ của bạn lần này. Điều này tiết lộ thông tin bộ định tuyến của bạn, bit bạn muốn là sau eth0 (kết nối ethernet). . . .

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    Viết thông tin sau ...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    Rõ ràng, thông tin của bạn sẽ khác với hướng dẫn này, vì vậy hãy đảm bảo bạn sử dụng thông tin của mình từ ifconfiglệnh chạy trên Pi.

  4. Bây giờ chạy netstat -nrhay route -n. Chúng tôi cần:

    Địa chỉ 'Cổng' - 192.168.1.254
    ' Địa chỉ ' Điểm đến - 192.168.1.0

  5. Bây giờ chúng ta có thông tin đó, chúng ta có thể chỉnh sửa tệp giao diện để thiết lập IP động. Chạy đi sudo nano /etc/network/interfaces. Nó sẽ trông giống như thế này:

    giao diện tập tin

  6. Thay đổi dòng:

    iface eth0 inet dhcp
    

    đến

    iface eth0 inet static
    

    Sau đó, ngay bên dưới dòng này, hãy nhập dòng sau ( Xin lưu ý. Bạn sẽ cần địa chỉ của riêng bạn mà chúng tôi đã thu thập ở trên ). . . .

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    Về cơ bản, phần địa chỉ là những gì bạn muốn IP của bạn được. Cao hơn là tốt hơn, vì có ít cơ hội xung đột IP. netmask - Địa chỉ 'Mặt nạ' chúng tôi đã viết trước đó.

    mạng - Địa chỉ IP của bộ định tuyến, đây là Địa chỉ 'Đích' đã được tìm thấy trước đó. Bạn cũng có thể lấy cái này ra khỏi bộ định tuyến của bạn, nó sẽ nói ở một bên nào đó.

    phát sóng - Địa chỉ 'Bcast' chúng tôi đã viết ra trước đó.

    gateway - Đây là địa chỉ 'Gateway' mà chúng tôi đã tìm thấy trước đó.

    Nhấn Ctrl+ Ovà hoặc Enterhoặc Ysau đó Enter. Khi bạn đã thực hiện xong, nhấn Ctrl+ X.

  7. Chạy sudo rebootvà IP của bạn nên được đặt đúng chỗ! Đăng nhập lại và chạy lại ifconfiglệnh và nó sẽ trông như thế này ngay bây giờ:

    lạ mắt!

Sau đó định cấu hình chuyển tiếp cổng của bạn sang IP tĩnh mới của bạn và tất cả sẽ hoạt động! May mắn nhất!


2
Người bỏ phiếu có thể giải thích tại sao? Tôi nghĩ rằng đây là một giải pháp hoàn toàn hợp lệ và khả thi. Tôi muốn biết tại sao để tôi có thể cải thiện câu trả lời của mình.
RPiAwesomeness

1
Điều này sẽ chỉ hoạt động trên mạng cục bộ và không phải từ bên ngoài. OP hỏi làm thế nào để kết nối với Pi qua Internet chứ không phải từ cùng một mạng.
Chinmay Sarupria

Một địa chỉ như 192.168.1.100 là một địa chỉ địa phương, tôi có thể có 2 Pi ở 2 khu vực khác nhau của thành phố có cùng địa chỉ địa phương. Vì vậy, tất nhiên, tôi sẽ không thể truy cập một trong số họ từ bên ngoài mạng.
Chinmay Sarupria

Nếu bạn cung cấp cho RPi của bạn một địa chỉ IP tĩnh, bạn nên loại trừ nó khỏi nhóm DHCP, nếu không, một thiết bị khác trong mạng của bạn có thể nhận được nó và bạn sẽ có xung đột IP.
Dmitry Grigoryev

2

Điều duy nhất bạn dường như đã cấu hình sai là SSH là giao thức chỉ TCP, vì vậy bạn không cần chuyển tiếp lưu lượng UDP trên cổng 22.

Bây giờ tại sao nó dường như không hoạt động có lẽ là do bộ định tuyến của bạn không hỗ trợ loopback NAT . Điều đó có nghĩa là các quy tắc NAT (chẳng hạn như quy tắc chuyển tiếp của bạn) không được áp dụng khi nguồn gốc của kết nối là từ mạng LAN nội bộ của bạn. Không phải tất cả các bộ định tuyến đều có tính năng này ON. Do đó, nếu bộ định tuyến của bạn không hỗ trợ loopback NAT, thì bạn sẽ không thể kết nối với RPi của mình bằng SSH khi sử dụng tên miền no-ip.com và khi thực hiện từ mạng LAN của bạn .

Để thử xem cấu hình của bạn có hoạt động không, nếu bạn có điện thoại thông minh có kết nối dữ liệu (3G, LTE, v.v.) và có máy khách ssh trên đó, hãy thử kết nối với RPi của bạn bằng gói dữ liệu chứ không phải kết nối WiFi. Nếu bạn không có ứng dụng khách ssh trên đó và bạn được phép thực hiện chia sẻ kết nối, thì hãy sử dụng điện thoại thông minh của bạn cùng với một trong các máy tính của bạn bằng cách rút phích cắm cho mạng cục bộ của bạn và sử dụng liên kết kết nối thay thế.


0

Hãy thử sử dụng một tên miền miễn phí, ví dụ co.cc hoặc tương tự và freeDNS (họ cũng cung cấp một phạm vi lớn các tên miền phụ) để trỏ đến bộ định tuyến của bạn. Tôi nghĩ bạn cũng có thể nhận được một tập lệnh cập nhật trong trường hợp bộ định tuyến của bạn có IP động.

Nếu điều đó không hoạt động, có lẽ các cài đặt cho chuyển tiếp cổng của bạn là sai? Bạn có loại bộ định tuyến nào?


Try using a free domain name...Anh ấy đã làm điều đó, đó là những gì khách hàng không có ip. Nó đơn giản hơn nhiều so với việc phải làm rối với DNS và bộ định tuyến thủ công.
RPiAwesomeness

@RPiAwesomeness Xin lỗi, không biết điều đó.
Samadi

Không vấn đề gì. Tôi chỉ đang làm nhiệm vụ của mình là một thành viên Stack Exchange và kiểm duyệt trang web. Đó chỉ là một chút chỉ trích hữu ích. Xin đừng coi đó là một cuộc tấn công vào bạn, tôi chỉ đang cố gắng giúp giữ cho nội dung trên trang web này hữu ích và nhiều thông tin. Hãy tiếp tục cố gắng giúp đỡ và trả lời các câu hỏi và được tham gia, bạn sẽ bắt đầu hiểu nó. :) Ngoài ra, thỉnh thoảng tham gia vào cuộc trò chuyện. Những người trong họ rất thích có công ty, nó cho thấy rằng trang web này hữu ích và phát triển mạnh và có một cơ sở người dùng tốt, có liên quan.
RPiAwessomeness 23/03 '

0

Tôi gặp tình huống này ở Phần Lan: rpi được kết nối với bộ định tuyến wifi di động, huawei e5776 và tôi muốn kết nối với rpi bằng SSH qua internet, cho đến nay tôi không biết nhà cung cấp dịch vụ Internet của mình chặn kết nối hai chiều khách hàng băng thông rộng di động. Lưu lượng truy cập hai chiều đối với họ là dịch vụ bổ sung, (mà bạn phải trả tiền) được gọi là cổng mở bởi ISP của tôi. Vì vậy, hãy đến trang web ISP của riêng bạn để xem nếu đó là trường hợp.


0

Slubbix đã chỉ ra một vấn đề có thể xảy ra là địa chỉ IP cục bộ của Raspberry Pi không được sửa. Điều này sẽ làm cho cổng chuyển tiếp trong bộ định tuyến của bạn không đáng tin cậy. Theo mặc định, Raspberry Pi được cấu hình để sử dụng DHCP. Điều này có nghĩa là IP được cung cấp bởi bộ định tuyến. IP này theo mặc định cũng không cố định.

Một giải pháp cho vấn đề này đã được Slubbix chỉ ra : để cố định IP của Raspberry Pi.

Theo tôi, điều này có hai nhược điểm: không có danh sách IP toàn cầu nào trong mạng của bạn dễ dàng duy trì và bạn không thể sử dụng Raspberry Pi trong một mạng khác (IP đã được sử dụng hoặc các submask khác nhau).

Do đó, tôi đề xuất thực hiện các thao tác sau: định cấu hình bộ định tuyến của bạn để gán IP cố định cho địa chỉ MAC của Raspberry Pi. Địa chỉ MAC có thể được tìm thấy bằng cách sử dụng lệnhifconfig


0

Địa chỉ IP cục bộ của Raspberry Pi của bạn không cố định, trừ khi bạn đang sử dụng bộ điều hợp không dây để kết nối, sẽ giữ địa chỉ IP của nó. Nếu bạn muốn sử dụng SSH cho RPI, bạn có thể sử dụng các bước sau:

Bắt đầu Pi của bạn đến dấu nhắc thiết bị đầu cuối. Nhập lệnh sau "sudo apt-get install xrdp" Nếu được quảng cáo, hãy nhập mật khẩu của bạn (mặc định là "mâm xôi") Nhập "Y" và nhấn enter. Điều này hiện đang cài đặt xrdp lên Pi của bạn, đây là phần mềm chúng tôi sẽ sử dụng cho kết nối máy tính từ xa. Đợi nó hoàn thành. Khởi động lại Pi của bạn. Chúng tôi sẽ kiểm tra xem xrdp sẽ tự động khởi động. Khi Pi của bạn đã khởi động đến dấu nhắc lệnh, hãy tìm [ok] Khởi động máy chủ Giao thức máy tính từ xa: xrdp sesman. Điều này cho bạn thấy rằng xrdp đã được cài đặt và tự động khởi động khi khởi động Pi của bạn Bước cuối cùng là ghi chú địa chỉ IP của Pi của bạn cũng sẽ được hiển thị trên màn hình khởi động. Trong trường hợp của tôi dưới đây là 192.168.1.9.

Cài đặt máy thứ hai

  1. Khởi chạy Kết nối máy tính từ xa có thể được tìm thấy tại Bắt đầu-> Tất cả chương trình-> Phụ kiện-> Kết nối máy tính từ xa
  2. Nhập Địa chỉ IP cho Pi của bạn mà bạn đã lưu ý ở trên.

  3. Nhấp vào Kết nối (bạn có thể nhận được cảnh báo bảo mật ở giai đoạn này, chỉ cần nhấp vào OK nếu bạn làm như vậy. Sau tất cả, đó là Pi của bạn trên mạng của bạn để không có gì phải lo lắng về bảo mật khôn ngoan).

  4. Để lại Mô-đun theo mặc định của sesman-Xvnc và nhập tên người dùng và mật khẩu cho Pi của bạn. (Mặc định là pi và mâm xôi nếu bạn chưa thay đổi chúng).

  5. Nhấp vào OK và sau một vài phút, bạn sẽ được chào đón máy tính để bàn Raspberry Pi của tôi!

  6. Khi bạn kết thúc, chỉ cần đăng xuất khỏi màn hình của Pi.

Tôi tìm thấy những bước này từ đây và họ làm việc cho tôi

Đây là một cách khác để sử dụng SSH:

SSH vào Raspberry Pi Tôi thường đăng nhập vào Raspberry Pi của mình thông qua SSH hoặc Secure Shell để đặt tên đầy đủ. Điều này cho phép truy cập dòng lệnh, đến Raspberry Pi của bạn, từ một máy tính khác. Mặc dù có thể SSH vào Raspberry Pi từ bất cứ nơi nào trên thế giới và tôi cũng vậy, bài đăng này chỉ đề cập đến quyền truy cập SSH qua mạng cục bộ. Tôi sẽ bao gồm kết nối từ xa trong một bài đăng blog trong tương lai.

Mặc dù điều này không cung cấp quyền truy cập vào GUI (Giao diện người dùng đồ họa), nhưng việc có quyền truy cập vào dòng lệnh thường cho phép tôi thực hiện 95% những gì tôi cần làm. 5% khác tôi có thể có thể thực hiện thông qua SSH, nhưng đôi khi bạn không thể đánh bại sự thoải mái của GUI. :-)

Trước hết bạn cần biết địa chỉ IP của Raspberry Pi mà bạn muốn đăng nhập. Nếu bạn không chắc chắn làm thế nào để tìm thấy điều này, thì hãy đọc bài đăng trên blog của tôi giải thích cách bạn có thể thực hiện việc này từ xa bằng cách sử dụng một công cụ tuyệt vời có tên là nmap.

Để SSH vào Raspberry Pi của bạn từ máy tính Linux hoặc Apple Mac, điều này rất dễ dàng. Bạn chỉ có thể nhập tên người dùng và địa chỉ IP của bạn vào dòng lệnh bằng cách sử dụng định dạng sau:

tên người dùng ssh @ IPaddress

Đảm bảo bạn thay thế tên người dùng bằng tên người dùng bạn muốn đăng nhập vào máy tính từ xa. Địa chỉ IP phải có định dạng 192.168.1.66

Bạn có thể nhận được một thông báo giải thích rằng tính xác thực của máy chủ không thể được thiết lập và nếu bạn chắc chắn muốn tiếp tục kết nối. Bạn sẽ chỉ thấy thông báo này trong lần đầu tiên bạn SSH vào Raspberry Pi. Đơn giản chỉ cần gõ có.

Sau đó, bạn sẽ được yêu cầu nhập mật khẩu, nhập mật khẩu cho tên người dùng bạn đang cố gắng kết nối.

Đối với các cửa sổ, việc cài đặt này khó hơn một chút vì nó yêu cầu một phần mềm bổ sung có tên là PuTTY. Tuy nhiên một khi cài đặt, điều này thực sự đơn giản để sử dụng.

Trước tiên, hãy truy cập trang web PuTTY, www.putty.org, tải xuống và cài đặt phần mềm.

Sau khi cài đặt tải PuTTY

Trong Tên máy chủ (hoặc địa chỉ IP), nhập địa chỉ IP bạn muốn kết nối. Chọn nút radio SSH. Trong hộp bên dưới Phiên đã lưu, nhập tên để xác định máy tính này, chẳng hạn như Raspberry Pi, sau đó bấm Lưu. Nhấp vào Open bây giờ sẽ bắt đầu phiên SSH của bạn.

Lần tới khi bạn muốn SSH vào Raspberry Pi, bạn chỉ cần tải PuTTY, nhấp vào phiên đã lưu để tô sáng nó và sau đó nhấp vào Mở. Khi bạn đã nhập mật khẩu, khi được hỏi, bạn có quyền truy cập từ xa vào Raspberry Pi.

Tôi tìm thấy những hướng dẫn từ đây


Tôi không thấy các hướng dẫn này giúp truy cập RPi qua Internet
Dmitry Grigoryev

0

Một điều mà tôi nhận thấy trên internet của mình là khi tôi chuyển tiếp máy chủ web của mình và tôi đã cố gắng kết nối với nó bằng ip công cộng của mình thì nó sẽ nói rằng nó không khả dụng, nhưng khi tôi kết nối với nó trên điện thoại hoặc trên mạng của trường tôi Tôi có thể kết nối với nó, một điều bạn có thể làm là vào google và gõ "IP" vào thanh tìm kiếm, sao chép ip mà nó cung cấp cho bạn, sau đó truy cập google dịch và dán vào ip của bạn, và sau đó nhấp vào địa chỉ IP màu xanh trong cửa sổ bên phải và nó sẽ hiển thị cho bạn nếu bạn chuyển thành công máy chủ web của mình.


0

Để cho phép lưu lượng truy cập đến trên cổng SSH mặc định (22), bạn có thể yêu cầu iptables cho phép tất cả lưu lượng TCP trên cổng đó đi vào.

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

Tham khảo lại danh sách trên, bạn có thể thấy rằng điều này nói với iptables:

  1. nối quy tắc này vào chuỗi đầu vào ( -A INPUT) để chúng tôi xem xét lưu lượng truy cập đến
  2. kiểm tra xem nó có phải là TCP ( -p tcp) không.
  3. nếu vậy, hãy kiểm tra xem liệu đầu vào có đi tới cổng SSH ( --dport ssh) không.
  4. nếu vậy, chấp nhận đầu vào ( -j ACCEPT).

Hy vọng rằng điều này cũng hiệu quả với bạn, bạn có thể muốn thêm các cổng ftp là 20-21, chỉ cần thay đổi sshthành 2021.


0

Tôi không chắc chắn nếu câu hỏi này cần câu trả lời bổ sung nhưng nó khá đơn giản.

  1. Cài đặt OpenSSH hoặc kích hoạt nó từ raspi-config

  2. Chuyển đến trang chủ bộ định tuyến / tường lửa của bạn trong trường hợp của tôi 192.168.1.1

  3. Tìm kiếm chuyển tiếp cổng hoặc máy chủ ảo và thêm một cái gì đó như sau:

    Khởi động cổng ngoài: 1234 Kết thúc cổng ngoài: 1234

    Cổng nội bộ bắt đầu và kết thúc 22.

    IP máy chủ là IP tĩnh của RPi của bạn trong trường hợp của tôi 192.168.1.50

  4. Khi tất cả đã được thiết lập ở phía bộ định tuyến, hãy ghi chú IP IP của bạn bằng cách tìm kiếm IP của bạn trên Google.

  5. Bây giờ bạn sẽ có thể SSH đến pi qua internet. Trong trường hợp của tôi, tôi đang sử dụng Chromebook và bổ sung vỏ an toàn. Tôi nhập tên người dùng trong trường hợp của tôi pi@mywanipvà cổng 1234.

Về cơ bản, quy tắc tường lửa ở bước 3 sẽ chuyển tất cả lưu lượng truy cập trên cổng IP IP của mạng LAN 1234 sang cổng 22 của LAN IP bên trong.


-1

Tôi đã vật lộn rất nhiều với việc thiết lập SSH qua internet cho đến khi tôi tìm thấy phương pháp đơn giản này:

http://raspctl.com

Chỉ cần đăng ký và sao chép-dán các lệnh. Bạn có thể cần chỉnh sửa một tập tin cấu hình nhưng đó là nó. Tôi đã thử nó ngày hôm nay và nó hoạt động như sự quyến rũ. Tôi cũng đã thử nó với các ứng dụng Android SSH khác nhau.


Quên đề cập đến: đừng đặt chuyển tiếp cổng trên bộ định tuyến của bạn!
alkopop79

1
FYI: Dự án đó dường như đã bị ngưng.
bobstro
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.