Tự tạo SSH tunnel để forward port ra remote server
ngrok
2
ssh-tunnel
2
ssh
11
White

Huy Trần viết ngày 12/09/2016

Khi làm việc, đôi lúc bạn chạy server ở localhost nhưng cần truy cập vào nó từ một thiết bị khác không cùng trong mạng nội bộ, ví dụ chạy web để demo cho khách hàng xem, hoặc muốn test API trên localhost của bạn từ mobile app.

alt text

Khi đó bạn cần phải forward port mà server app của bạn đang sử dụng (localhost) ra một server bên ngoài (remote server) để người khác có thể truy cập vào.

alt text

Để làm điều này thì bạn có thể sử dụng các dịch vụ như ngrok, PageKite, Forward.

Nhưng nếu có một server riêng thì chúng ta hoàn toàn có thể tự setup một dịch vụ như vậy để xài riêng mà không cần phải phụ thuộc vào ai. Bằng cách sử dụng SSH tunnel.

Setup từ phía server

Yêu cầu đầu tiên là server phải được setup để truy cập được từ bên ngoài (giả sử có domain là kipalol.com) và phải hỗ trợ SSH.

Truy cập vào server và thêm dòng cấu hình GatewayPorts vào file /etc/ssh/sshd_config như sau:

GatewayPorts yes

Sau đó thì restart lại SSH server:

service ssh restart

Tạo tunnel từ phía localhost

Giả sử trên localhost của bạn đang chạy một Rails app ở cổng 3000, và bạn muốn mọi người có thể truy cập vào Rails app này thông qua cổng 9000 từ phía server của bạn. Ví dụ: http://kipalol.com:9000

Ta chạy lệnh sau trên máy localhost:

ssh -N -R 9000:localhost:3000 user@kipalol.com

Các tham số:

  • -N để đảm bảo là bạn không kết nối ở chế độ login vào SSH server
  • -R để tạo tunnel tới server
  • 9000 là cổng ở server mà bạn muốn mở để truy cập vào Rails app ở localhost
  • localhost:3000 là địa chỉ truy cập và cổng của Rails app
  • user@kipalol.com là user và địa chỉ truy cập mà bạn dùng để SSH vào server

Từ bây giờ, user có thể truy cập vào http://kipalol.com:9000 để truy cập trực tiếp vào Rails app mà bạn đang chạy trên máy cá nhân của mình.

Ngoài ra các bạn có thể tìm hiểu thêm về các ứng dụng khác của SSH tunnel qua bài này

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Trần

97 bài viết.
1434 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
144 43
Tại sao phải viết blog kĩ thuật? Có rất nhiều bài viết trên mạng nói về vấn đề tại sao một lập trình viên nên thường xuyên viết các bài blog kĩ thu...
Huy Trần viết hơn 2 năm trước
144 43
White
143 37
(Ảnh) Tiếp tục sêri (Link) lần này, chúng ta sẽ cùng tìm hiểu và mô phỏng lại một chức năng mà mọi người đang bắt đầu sử dụng hằng ngày, đó là chứ...
Huy Trần viết hơn 1 năm trước
143 37
White
96 16
Phần 1: Tự truyện Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nh...
Huy Trần viết gần 2 năm trước
96 16
Bài viết liên quan
White
7 0
Trước đây mình có giới thiệu một cách tiện lợi để nhớ khi SSH vào server tại (Link), hôm nay ngồi mò thấy một mẹo nhỏ nữa cũng khá hay nên chia sẻ ...
Quăng viết gần 2 năm trước
7 0
White
25 5
SSH, viết tắt của Secure Shell, là một giao thức mã hoá thường được sử dụng để truy nhập vào các máy chủ từ xa (đặc biệt là các máy chủ Linux). Hầu...
Tuan-Anh Hoang-Vu viết gần 3 năm trước
25 5
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
97 bài viết.
1434 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!