Tự tạo SSH tunnel để forward port ra remote server

Công Nghệ
Tự tạo SSH tunnel để forward port ra remote server
Bài viết được sự cho phép của tác giả Huy Trần 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...

Bài viết được sự cho phép của tác giả Huy Trần

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ư ngrokPageKiteForward.

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

Xem thêm các việc làm SSIS lương cao trên Station D

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ài viết gốc được đăng tải tại snacky.blog

Có thể bạn quan tâm:

Xem thêm các việc làm công nghệ hấp dẫn trên Station D

Bài viết liên quan

Ngành IT: Làm việc “trên mây” kiếm nhiều tiền nhất hiện nay

Ngành IT: Làm việc “trên mây” kiếm nhiều tiền nhất hiện nay

Kết quả từ cuộc khảo sát đầu năm của Station D về lương bổng của lập trình viên cho thấy nhiều thay đổi đã và đang diễn ra trong ngành IT – cuộc khảo sát tập trung vào các câu hỏi về khối lượng công việc, triển vọng cũng như...

By stationd
Đâu chỉ mỗi Bitcoin, công nghệ Blockchain còn nhiều ứng dụng hơn thế!

Đâu chỉ mỗi Bitcoin, công nghệ Blockchain còn nhiều ứng dụng hơn thế!

Khi nhắc đến blockchain , lập tức mọi người thường nghĩ ngay đến các loại tiền mã hóa, chẳng hạn như bitcoin. Tuy nhiên, blockchain lại là công nghệ tạo ra tiền mã hóa nhưng bản thân công nghệ này không phải là tiền mã hóa như cách mà chúng...

By stationd
Mock phương thức static trong Unit Test sử dụng PowerMock

Mock phương thức static trong Unit Test sử dụng PowerMock

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết này, mình sẽ hướng dẫn các bạn Mock các phương thức static trong Unit Test các bạn nhé! Nếu bạn nào chưa biết về Mock trong Unit Test thì mình có thể nói sơ qua...

By stationd