Serveo là gì – Công cụ cho phép public localhost server
Người viết: Vương Minh Thái Lời mở đầu Hôm nay mình xin giới thiệu tới các bạn về một công cụ mình thấy khá là hay ho trong quá trình phát triển phần mềm, đó chính là Serveo . Vậy Serveo là gì ? Dùng để làm gì ? Dùng như thế nào ? Chúng ta hãy cùng đi vào tìm hiểu ...
Người viết: Vương Minh Thái
Lời mở đầu
Hôm nay mình xin giới thiệu tới các bạn về một công cụ mình thấy khá là hay ho trong quá trình phát triển phần mềm, đó chính là Serveo.
Vậy Serveo là gì ? Dùng để làm gì ? Dùng như thế nào ? Chúng ta hãy cùng đi vào tìm hiểu thêm nhé.
Nội dung
Bài toán đặt ra
Chắc hẳn bạn nào làm lập trình viên cũng từng xem qua bức ảnh này rồi đúng không ?
Bài toán đặt ra ở đây là server localhost của bạn thì chỉ có một mình bạn xem được.
Vậy bây giờ tôi muốn đưa server localhost của mình public lên trên internet để những người khác cũng có thể truy cập thì phải làm thế nào?
Câu trả lời cho bạn chính là Localtunnel.
Localtunnel là gì
Localtunnel là một “loại công cụ” cung cấp đường hầm (tunnel) liên kết localhost của bạn và mạng internet để bạn có thể truy cập vào localhost giống như một server bình thường.
Và một số công cụ khá phổ biến gồm có:
- Localtunnel.me
- Ngrok
- Serveo
Nhưng trọng phạm vi bài viết này, chúng ta sẽ tìm hiểu về Serveo thôi nhé!
Tại sao lại là Serveo mà không phải những công cụ khác?
Câu trả lời rất đơn giản, vì nó free, không cần cài đặt và đăng kí tài khoản.
Trước tiên ở localhost mình có một project test như hình ảnh bên dưới.
Và ở phần demo, mình sẽ thử truy cập localhost của mình thông qua điện thoại xem thế nào nhé.
Serveo
Tuy nhiên lựa chọn free này chỉ áp dụng cho người dùng cá nhân dùng để thử nghiệm. Vì vậy chỉ có thể sử dụng tối đa là 3 tunnel cùng lúc. Nếu muốn sử dụng nhiều hơn, hãy sử dụng phiên bản dành cho doanh nghiệp hoặc có thể email để xin thử các bạn nhé.
Email me at trevor@serveo.net if you’re interested in licensing Serveo for business use or otherwise need more than 3 tunnels at a time.
Và đây là kết quả khi mà mình truy cập vào từ điện thoại di động. (Mình dùng 4g nhé, không lại bảo là dùng mạng LAN)
- Khởi tạo tunnelTại sao lại là địa chỉ cernuus.serveo.net? Thì các bạn hãy để ý hình ảnh bên dưới, khi chạy câu lệnh:
1 2 3 |
ssh -R 80:localhost:80 serveo.net |
Serveo sẽ sinh ra cho chúng ta 1 đường dẫn xxxxxxx.serveo.net với phần subdomain là sinh ngẫu nhiên với mỗi địa chỉ IP (restart lại thì nó vẫn là subdomain cũ thôi).
Và sau khi có thiết bị kết nối với địa chỉ localhost của bạn thì thông tin các request sẽ được hiển thị trên commandline như bên dưới.
- Khởi tạo nhiều tunnel cùng lúc:Ví dụ bạn có N project chạy ở localhost (N <= 3 vì bản free chỉ cho chạy tối đa 3 tunnel cùng lúc thôi) thì bạn chỉ cần lặp lại đoạn -R 80:localhost:port N lần là có thể chạy đồng thời.
1 2 3 4 |
ssh -R 80:localhost:80 -R 80:localhost:8000 serveo.net #ở đây mình chạy 2 project, 1 cái chạy cổng 80, 1 cái chạy cổng 8000 |
- Chỉ định subdomain
Nếu như bạn muốn sử dụng 1 subdomain cụ thể thì chỉ cần truyền thêm vào trong câu lệnh như sau:
1 2 3 4 |
ssh -R subdomain:80:localhost:port serveo.net ssh -R subdomain.serveo.net:80:localhost:port serveo.net |
Ở đây mình sử dụng subdomain lovelqd:
- Tuỳ chỉnh domain mong muốn: Nếu bạn muốn sử dụng subdomain ngẫu nhiên này thì bạn cũng có thể truyền vào một subdomain mà bạn muốn. Tuy nhiên sẽ hơi lằng nhằng 1 chút vì dính dáng đến ssh key. Sau khi lấy được fingerprint (của mình là SHA256:KTLNcMgKeg6jIcmrClEfA9svM/F3/vMqt1NlXL/Dbjo) thì bạn cần thêm 2 bản ghi DNS cho dơmain của bạn.
- 1 bản ghi A chỉ đến địa chỉ IP.
- 1 bản ghi TXT thì điền fingerprint vào chỗ authkeyfp=[fingerprint].
Sau khi đã cấu hình DNS xong thì bạn có thể tạo tunnel đến domain của bạn với câu lệnh:
1 2 3 |
ssh -R your.domain:80:localhost:80 serveo.net |
- Tuỳ chỉnh thời gian timeoutNếu bạn sử dụng thì sẽ để ý thấy là cứ sau 1 khoảng thời gian nhất định thì các tunnel này sẽ tự động đóng. Để thiết lập thời gian sống cho các tunnel này thì bạn chỉ cần thêm -o ServerAliveInterval=TIME vào trong câu lệnh khởi tạo tunnel.
Lời kết
Trên đây là một số thứ mình tìm hiểu được về Serveo muốn chia sẻ lại với mọi người (vì mình tìm trên google tài liệu về Serveo không có tiếng Việt, chắc là nó cũng mới ra).
Hy vọng nó giúp ích cho các bạn.
Xin cảm ơn đã đọc bài của mình!