Vài Tips dùng SSH Tunnel Forward Kết Nối Mạng
By Hoang T. Nguyen
April 4, 2023
Bài toán:
- Hệ thống server của bạn được nằm tách biệt với các mạng khác nhau.
- Bạn cần thể hiện app của bạn cho khách hàng nhưng hiện tại không public được thông tin server.
- Bạn cần truy xuất bằng giao diện với một số service hoặc sử dụng tool bên thứ ba kết nối vào service đang chạy trên một server nội bộ.
Chuẩn bị:
-
Lưu ý SSH đã được cài đặt trên máy tính của bạn.
-
Cho phép tính năng ssh tunnel trên các server.
Kiểm tra các thiết lập này đã có hiệu lực chưa:
/etc/ssh/sshd_config
AllowTcpForwarding yes GatewayPorts yes
Nếu có thay đổi hãy restart lại service:
sudo service sshd restart
Tiến hành:
- Hiện tại bạn có một con server với IP là
10.0.0.1
- trên này đang chạy mộtapp
với port là3000
, bạn connect vớiapp
thông qua port4000
trên chính máy tính của bạn. Ví dụ làhttp://localhost:4000
. Ta chạy câu lệnh sau:
ssh -N -R 3000:localhost:4000 root@10.0.0.1
Và giờ bạn có thể truy cập được app
thông qua http://localhost:4000
rồi đó
- Nhiều hệ thống sẽ không truy cập được trực tiếp giữa máy tính của ta với trực tiếp server đang chạy, thay vào đó chúng ta thường sử dụng Proxy hoặc Bastion làm trung gian.
Ví dụ bạn có một con server IP 10.0.0.1 đang chạy Mysql với port
3306
, và một con proxy10.0.0.100
: Ta chạy lệnh:
ssh -J root@10.0.0.100 -L 3306:localhost:3306 root@10.0.0.1
Ngoài ra các bạn có thể tùy biến lại để phục vụ nhu cầu hoặc tạo thêm nhiều thứ thú với hơn với SSH Tunnel.
- Posted on:
- April 4, 2023
- Length:
- 2 minute read, 270 words
- See Also: