Cách thiết lập front-end server PageKite trên Debian 9
Mạng riêng thường cung cấp quyền truy cập internet đến các server bằng NAT (dịch địa chỉ mạng), chia sẻ một địa chỉ IP công cộng duy nhất với tất cả các server bên trong mạng riêng. Trong hệ thống NAT, các server bên trong mạng riêng không được nhìn thấy từ bên ngoài mạng. Để hiển thị các dịch vụ đang chạy trên các server này với internet công cộng, bạn thường sẽ tạo các luật NAT trong cổng, thường được gọi là luật chuyển tiếp cổng . Tuy nhiên, trong một số trường hợp, bạn sẽ không có quyền truy cập vào cổng để cấu hình các luật này. Đối với những tình huống như thế này, các giải pháp đào hầm như PageKite rất hữu ích.PageKite là một giải pháp tunnel nhanh chóng và an toàn có thể đưa dịch vụ bên trong mạng riêng lên internet công cộng mà không cần chuyển tiếp cổng. Để làm điều này, nó dựa vào một server bên ngoài, được gọi là server front-end , server phía sau NAT và các client kết nối để cho phép giao tiếp giữa chúng. Theo mặc định, PageKite sử dụng dịch vụ pagekite.net thương mại của riêng mình, nhưng vì đây là một dự án open-souce hoàn toàn, nó cho phép bạn cài đặt giao diện user riêng trên một server có thể truy cập. Với cài đặt này, bạn có thể tạo giải pháp độc lập với nhà cung cấp để truy cập từ xa vào các server sau NAT. Bằng cách cấu hình các server từ xa với client PageKite để kết nối với giao diện user và hiển thị cổng SSH, có thể truy cập chúng thông qua giao diện dòng lệnh bằng SSH. Cũng có thể truy cập giao diện user đồ họa bằng hệ thống chia sẻ máy tính để bàn như VNC hoặc RDP chạy qua kết nối SSH.
Trong hướng dẫn này, bạn sẽ cài đặt và cài đặt dịch vụ mặt trước PageKite trên server chạy Debian 9. Bạn cũng sẽ cài đặt thêm hai server Debian 9 để mô phỏng môi trường local và từ xa. Khi bạn hoàn tất, bạn sẽ cài đặt một server cho nhiều client và thử nghiệm nó với một giải pháp thực tế để truy cập từ xa bằng SSH và VNC.
Yêu cầu
Trước khi làm theo hướng dẫn này, bạn cần các thành phần sau :
- Một tài khoản DigitalOcean để cài đặt các server sẽ được sử dụng trong hướng dẫn.
- Server chạy Debian 9 có địa chỉ IP công cộng để hoạt động như server mặt trước, được cài đặt theo hướng dẫn Cài đặt Server Ban đầu với Debian 9 . Một server DigitalOcean tiêu chuẩn với 1GB bộ nhớ là đủ cho mục đích thử nghiệm hoặc cho các ứng dụng có một vài kết nối. Ta sẽ tham chiếu đến server này theo tên server
front-end-server
và địa chỉ IP công khai của nó bởiFront_End_Public_IP
. - Hai server chạy Debian 9, sẽ đóng role là server local và từ xa sẽ kết nối bằng dịch vụ PageKite, được cài đặt theo hướng dẫn Cài đặt Server Ban đầu với Debian 9 . Server từ xa, với quyền truy cập internet thông qua NAT, sẽ được server local truy cập bằng tunnel PageKite. Server lưu trữ từ xa và server local sẽ được tham chiếu bởi tên server lưu trữ
remote-host
local-host
và địa chỉ IP công cộng của chúng bằngRemote_Host_Public_IP
vàLocal_Host_Public_IP
tương ứng. Hướng dẫn này sẽ sử dụng hai server DigitalOcean tiêu chuẩn với 1GB bộ nhớ để đại diện cho chúng. Ngoài ra, có thể sử dụng hai máy local hoặc máy ảo để đại diện cho các server này. - Tên domain đã đăng ký đầy đủ. Hướng dẫn này sẽ sử dụng
your_domain
làm ví dụ xuyên suốt. Bạn có thể mua domain trên Namecheap , nhận một domain miễn phí trên Freenom hoặc sử dụng công ty đăng ký domain mà bạn chọn. - Cả hai bản ghi DNS sau được cài đặt cho server của bạn. Bạn có thể theo dõi phần giới thiệu này về DigitalOcean DNS để biết chi tiết về cách thêm chúng.
- Một kỷ lục A với
pagekite. your_domain
trỏ đến địa chỉ IP củafront-end-server
. - Ta cũng cần cài đặt DNS để mọi domain kết thúc bằng
pagekite. your_domain
cũng chỉ rafront-end-server
của ta . Điều này có thể được cài đặt bằng cách sử dụng các mục DNS ký tự đại diện. Trong trường hợp này, hãy tạo bản ghi A cho mục nhập DNS ký tự đại diện*.pagekite. your_domain
để trỏ đến cùng một địa chỉ IP,Front_End_Public_IP
. Điều này sẽ được sử dụng để phân biệt các khách hàng kết nối với server của ta bằng domain (client-1.pagekite. your_domain
vàclient-2.pagekite. your_domain
, ví dụ) và tunnel những yêu cầu thích hợp.
- Một kỷ lục A với
- Máy tính local có cài đặt ứng dụng client VNC hỗ trợ kết nối VNC qua tunnel SSH.
Bước 1 - Cài đặt server
Trong hướng dẫn này, ta sẽ sử dụng ba server DigitalOcean để đóng role của front-end-server
, local-host
và remote-host
. Để thực hiện việc này, trước tiên ta sẽ cài đặt local-host
remote-host
có quyền truy cập vào môi trường đồ họa và bắt chước hành vi của remote-host
theo NAT, để PageKite được dùng như một giải pháp để truy cập các dịch vụ của nó . Bên cạnh đó, ta cũng cần phải cấu hình các luật firewall Server của front-end-server
để cho phép nó hoạt động với PageKite và trung gian kết nối giữa local-host
và remote-host
.
Vì ta sẽ làm việc với nhiều server , ta sẽ sử dụng các màu khác nhau trong danh sách lệnh để xác định server nào ta đang sử dụng, như sau:
- # Commands and outputs in the front-end-server Server
- # Commands and outputs in the remote-host Server
- # Commands and outputs in the local-host Server
- # Commands and outputs in both the remote-host and local-host Server
Đầu tiên ta hãy đi qua các bước cho cả Server local-host
remote-host
local-host
, để cài đặt các phụ thuộc và cài đặt quyền truy cập vào môi trường đồ họa bằng VNC. Sau đó, ta sẽ đề cập đến cấu hình firewall trong mỗi ba server để cho phép front-end-server
chạy PageKite và bắt chước kết nối bằng NAT trên remote-host
.
Cài đặt phụ thuộc
Ta cần quyền truy cập vào giao diện đồ họa trên cả local-host
remote-host
để chạy qua trình diễn này. Trên local-host
, ta sẽ sử dụng phiên VNC để truy cập giao diện đồ họa của nó và kiểm tra cài đặt của ta bằng trình duyệt. Trên remote-host
, ta sẽ cài đặt một phiên VNC mà ta sẽ truy cập từ local-host
.
Để cài đặt VNC, trước tiên ta cần cài đặt một số phụ thuộc vào local-host
và remote-host
. Nhưng trước khi cài đặt bất kỳ gói nào, ta cần cập nhật danh sách gói của các repository , bằng cách chạy như sau trên cả hai server :
- sudo apt-get update
Tiếp theo, ta cài đặt server VNC và môi trường user đồ họa, cần thiết để bắt đầu phiên VNC. Ta sẽ sử dụng server Tight VNC và môi trường máy tính để bàn Xfce , có thể được cài đặt bằng lệnh:
- sudo apt-get install xfce4 xfce4-goodies tightvncserver
Trong quá trình cài đặt môi trường đồ họa, ta sẽ được hỏi về bố cục bàn phím mà ta muốn sử dụng. Đối với bàn phím QWERTY US, hãy chọn English (US)
.
Ngoài những điều này, trên local-host
ta cần một trình xem VNC và một trình duyệt internet để có thể thực hiện kết nối với remote-host
. Hướng dẫn này sẽ cài đặt trình duyệt web Firefox và xtightvncviewer . Để cài đặt chúng, hãy chạy:
- sudo apt-get install firefox-esr xtightvncviewer
Khi một môi trường đồ họa được cài đặt, hệ thống khởi tạo ở chế độ đồ họa theo mặc định. Bằng cách sử dụng console DigitalOcean, có thể trực quan hóa trình quản lý đăng nhập đồ họa, nhưng không thể đăng nhập hoặc sử dụng giao diện dòng lệnh. Trong cài đặt của ta , ta đang bắt chước hành vi mạng như thể ta đang sử dụng NAT. Để làm điều này, ta cần sử dụng console DigitalOcean, vì ta sẽ không thể kết nối bằng SSH. Do đó, ta cần vô hiệu hóa giao diện user đồ họa tự động khởi động khi server khởi động . Điều này có thể được thực hiện bằng cách tắt trình quản lý đăng nhập trên cả hai server :
- sudo systemctl disable lightdm.service
Sau khi vô hiệu hóa trình quản lý đăng nhập, ta có thể khởi động lại Server và kiểm tra xem ta có thể đăng nhập bằng console DigitalOcean hay không. Để làm điều đó, hãy chạy như sau:
- sudo shutdown -r now
Tiếp theo, truy cập console DigitalOcean bằng cách chuyển đến trang Server trong Control panel DigitalOcean, chọn Server trên local-host
của bạn và nhấp vào từ Console ở góc trên cùng bên phải, gần lựa chọn để bật và tắt Server:
Sau khi nhấn enter trong console , bạn sẽ được yêu cầu nhập tên user và password của bạn . Nhập các thông tin đăng nhập này để hiển thị dấu nhắc dòng lệnh:
Khi bạn đã thực hiện việc này cho local-host
, hãy lặp lại cho remote-host
.
Với console được cài đặt cho cả hai Server, bây giờ ta có thể cài đặt VNC.
Cài đặt VNC
Ở đây, ta sẽ cùng nhau cài đặt VNC cơ bản. Nếu bạn muốn có hướng dẫn chuyên sâu hơn về cách cài đặt điều này, hãy xem hướng dẫn Cách cài đặt và cấu hình VNC trên Debian 9 của ta .
Để bắt đầu phiên VNC, hãy chạy như sau trên cả Server remote-host
local-host
remote-host
:
- vncserver
Trong lần chạy đầu tiên, hệ thống sẽ tạo các file cấu hình và yêu cầu nhập password chính. Nhập password mong muốn của bạn, sau đó xác minh nó. Server VNC cũng sẽ yêu cầu password chỉ xem, được sử dụng để xem phiên VNC của user khác. Vì ta sẽ không cần phiên VNC chỉ xem, hãy nhập n
cho dấu nhắc này.
Ouput sẽ trông giống như sau:
sammy@remote-host:/home/sammy$ vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is remote-host:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/remote-host:1.log
Dấu :1
sau tên server thể hiện số phiên VNC. Theo mặc định, phiên số 1
được chạy trên cổng 5901
, phiên số 2
trên cổng 5902
, v.v. Tiếp theo kết quả trước đó, ta có thể truy cập remote-host
bằng cách sử dụng client VNC để kết nối với Remote_Host_Public_IP
trên cổng 5901
.
Một vấn đề của cấu hình trước đó là nó không liên tục, nghĩa là nó sẽ không được khởi động theo mặc định khi Server được khởi động lại. Để làm cho nó hoạt động bền bỉ, ta có thể tạo một dịch vụ Systemd và kích hoạt nó. Để làm điều đó, ta sẽ tạo file vncserver@.service
trong /etc/systemd/system
, có thể được thực hiện bằng nano
:
- sudo nano /etc/systemd/system/vncserver@.service
Đặt các nội dung sau vào file , thay thế sammy
bằng tên user của bạn:
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=sammy PAMName=login PIDFile=/home/sammy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
Tệp này tạo một đơn vị vncserver
Systemd, đơn vị này có thể được cấu hình như một dịch vụ hệ thống bằng cách sử dụng công cụ systemctl
. Trong trường hợp này, khi dịch vụ được khởi động, nó sẽ giết phiên VNC nếu nó đang chạy (dòng ExecStartPre
) và bắt đầu một phiên mới bằng cách sử dụng độ phân giải được đặt thành 1280x800
(dòng ExecStart
). Khi dịch vụ bị dừng, nó sẽ giết phiên VNC (dòng ExecStop
).
Lưu file và thoát khỏi nano
. Tiếp theo, ta sẽ làm cho hệ thống biết về file đơn vị mới bằng lệnh:
- sudo systemctl daemon-reload
Sau đó, cho phép dịch vụ được tự động khởi động khi server được khởi tạo bằng lệnh:
- sudo systemctl enable vncserver@1.service
Khi ta sử dụng lệnh enable
với systemctl
, các softlink được tạo để dịch vụ được khởi động tự động khi hệ thống được khởi tạo, như được thông báo bởi kết quả của lệnh trước:
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
Với server VNC được cấu hình đúng cách, ta có thể khởi động lại Server để kiểm tra xem dịch vụ có tự động khởi động hay không:
- sudo shutdown -r now
Sau khi hệ thống khởi tạo, đăng nhập bằng SSH và kiểm tra xem VNC có đang chạy với:
- sudo systemctl status vncserver@1.service
Đầu ra sẽ cho biết dịch vụ đang chạy:
● vncserver@1.service - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-08-29 19:21:12 UTC; 1h 22min ago Process: 848 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Process: 760 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Main PID: 874 (Xtightvnc) Tasks: 0 (limit: 4915) CGroup: /system.slice/system-vncserver.slice/vncserver@1.service ‣ 874 Xtightvnc :1 -desktop X -auth /home/sammy/.Xauthority -geometry 1280x800 -depth 24 -rfbwait Aug 29 19:21:10 remote-host systemd[1]: Starting Start TightVNC server at startup... Aug 29 19:21:10 remote-host systemd[760]: pam_unix(login:session): session opened for user sammy by (uid=0) Aug 29 19:21:11 remote-host systemd[848]: pam_unix(login:session): session opened for user sammy by (uid=0) Aug 29 19:21:12 remote-host systemd[1]: Started Start TightVNC server at startup. ~
Điều này kết thúc cấu hình VNC. Hãy nhớ làm theo các bước trước trên cả remote-host
local-host
. Bây giờ ta hãy xem xét các cấu hình firewall cho từng server .
Cấu hình firewall
Bắt đầu với remote-host
, ta sẽ cấu hình firewall để từ chối các kết nối bên ngoài đến các dịch vụ của Server để bắt chước hành vi từ phía sau NAT. Trong hướng dẫn này, ta sẽ sử dụng cổng 8000
cho các kết nối HTTP, 22
cho SSH và 5901
cho VNC, vì vậy ta sẽ cấu hình firewall để từ chối các kết nối bên ngoài đến các cổng này.
Bằng cách thực hiện theo cài đặt ban đầu cho Debian 9 , remote-host
sẽ có luật firewall để cho phép kết nối tới SSH. Ta có thể xem xét luật này bằng lệnh:
- sudo ufw status verbose
Đầu ra sẽ như sau:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp (OpenSSH) ALLOW IN Anywhere 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
Xóa các luật SSH này để bắt chước hành vi đằng sau NAT.
Cảnh báo: Đóng cổng 22
nghĩa là bạn sẽ không thể sử dụng SSH để đăng nhập từ xa vào server của bạn . Đối với Server, đây không phải là vấn đề vì bạn có thể truy cập console của server thông qua Control panel DigitalOcean , như ta đã làm ở cuối phần Cài đặt phụ thuộc của bước này. Tuy nhiên, nếu bạn không sử dụng Server, hãy cẩn thận: việc đóng cổng 22
có thể khóa bạn khỏi server của bạn nếu bạn không có phương tiện nào khác để truy cập.
Để từ chối quyền truy cập SSH, hãy sử dụng ufw
và chạy:
- sudo ufw delete allow OpenSSH
Ta có thể xác minh các luật SSH đã bị xóa bằng cách kiểm tra lại trạng thái của firewall :
- sudo ufw status verbose
Đầu ra sẽ không hiển thị các luật firewall , như sau:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Mặc dù firewall đã được cấu hình , cấu hình mới sẽ không chạy cho đến khi ta kích hoạt nó với:
- sudo ufw enable
Sau khi bật nó, hãy lưu ý ta sẽ không thể truy cập remote-host
qua SSH nữa, như đã đề cập trong kết quả của lệnh:
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Đăng xuất khỏi remote-host
, sau đó kiểm tra cấu hình bằng cách thử cài đặt kết nối SSH hoặc VNC. Nó sẽ không thể thực hiện được. Từ bây giờ, ta có thể truy cập remote-host
độc quyền bằng console DigitalOcean.
Trên local-host
, ta sẽ để ngỏ các cổng SSH. Ta chỉ cần một luật firewall để cho phép truy cập vào phiên VNC:
- sudo ufw allow 5901
Sau khi sửa đổi các luật firewall , hãy kích hoạt nó bằng lệnh:
- sudo ufw enable
Bây giờ ta có thể kiểm tra kết nối VNC bằng ứng dụng client VNC tiên quyết trên máy local của bạn để kết nối với local-host
trên cổng 5901
bằng password VNC mà bạn đã cài đặt .
Để thực hiện việc này, hãy mở ứng dụng client VNC của bạn và kết nối với Local_Host_Public_IP :5901
. Sau khi bạn nhập password , bạn sẽ kết nối với phiên VNC.
Lưu ý: Nếu bạn gặp sự cố khi kết nối với phiên VNC, hãy khởi động lại dịch vụ VNC trên local-host
với sudo systemctl restart vncserver@1
và thử kết nối lại.
Trong lần khởi động đầu tiên, Xfce sẽ hỏi về cài đặt ban đầu của môi trường:
Đối với hướng dẫn này, hãy chọn tùy chọn Sử dụng cấu hình mặc định .
Cuối cùng, ta cần cho phép các kết nối đến cổng 80
trên front-end-server
, cổng này sẽ được sử dụng bởi PageKite. Mở một terminal trên front-end-server
và sử dụng lệnh sau:
- sudo ufw allow 80
Ngoài ra, cho phép lưu lượng truy cập trên cổng 443
cho HTTPS:
- sudo ufw allow 443
Để kích hoạt cấu hình firewall mới, hãy chạy như sau:
- sudo ufw enable
Bây giờ ta đã cài đặt Server, hãy cấu hình server front-end của PageKite.
Bước 2 - Cài đặt PageKite trên Server Front-End
Mặc dù có thể chạy PageKite bằng cách sử dụng tập lệnh Python để cài đặt server front-end, nhưng việc chạy nó bằng dịch vụ hệ thống sẽ tin cậy hơn. Để làm như vậy, ta cần cài đặt PageKite trên server .
Cách khuyến nghị để cài đặt dịch vụ trên server Debian là sử dụng gói phân phối . Bằng cách này, có thể tải các bản cập nhật tự động và cấu hình dịch vụ để khởi động khi server khởi động .
Đầu tiên, ta sẽ cấu hình repository để cài đặt PageKite. Để làm điều đó, hãy cập nhật danh sách gói của các kho:
- sudo apt-get update
Sau khi cập nhật xong, hãy cài đặt gói dirmngr
, gói này cần thiết để hỗ trợ nhập vòng khóa từ repository PageKite đảm bảo cài đặt an toàn:
- sudo apt-get install dirmngr
Tiếp theo, thêm repository vào file /etc/apt/sources.list
, bằng lệnh:
- echo deb http://pagekite.net/pk/deb/ pagekite main | sudo tee -a /etc/apt/sources.list
Sau khi cài đặt repository , hãy nhập khóa đóng gói PageKite vào bộ khóa tin cậy của ta , để ta có thể cài đặt các gói từ repository này. Quản lý khóa đóng gói được thực hiện với tiện ích apt-key
. Trong trường hợp này, ta phải nhập khóa AED248B1C7B2CAC3
từ khóa server keys.gnupg.net
, có thể thực hiện bằng lệnh:
- sudo apt-key adv --recv-keys --keyserver keys.gnupg.net AED248B1C7B2CAC3
Tiếp theo, cập nhật lại danh sách gói của repository , để gói pagekite
được lập index :
- sudo apt-get update
Cuối cùng, cài đặt nó với:
- sudo apt-get install pagekite
Bây giờ ta đã cài đặt xong PageKite, hãy cài đặt server front-end và cấu hình dịch vụ để chạy khi khởi động.
Bước 3 - Cấu hình Server Front-End
Gói PageKite mà ta vừa cài đặt được dùng để cấu hình kết nối với server PageKite front-end. Nó cũng được dùng để cài đặt dịch vụ front-end để nhận các kết nối PageKite, Đây là kết quả ta muốn làm ở đây. Để làm như vậy, ta phải chỉnh sửa các file cấu hình của PageKite.
PageKite lưu trữ các file cấu hình của nó trong folder /etc/pagekite.d
. Thay đổi đầu tiên mà ta phải làm là vô hiệu hóa tất cả các dòng trong file /etc/pagekite.d/10_account.rc
, vì file này chỉ được sử dụng khi PageKite được cài đặt làm client để kết nối với server front-end. Ta có thể chỉnh sửa file bằng nano
:
- sudo nano /etc/pagekite.d/10_account.rc
Để tắt các dòng, hãy thêm dấu #
để tắt các dòng hoạt động của file :
#################################[ This file is placed in the Public Domain. ]# # Replace the following with your account details. # kitename = NAME.pagekite.me # kitesecret = YOURSECRET # Delete this line! # abort_not_configured
Sau khi áp dụng các thay đổi , hãy lưu chúng và thoát khỏi nano
. Tiếp theo, chỉnh sửa file /etc/pagekite.d/20_frontends.rc
:
- sudo nano /etc/pagekite.d/20_frontends.rc
Thêm các dòng được đánh dấu sau vào file và comment dòng defaults
, đảm bảo thay thế your_domain
bằng domain bạn đang sử dụng và password examplepassword
bằng password bạn chọn:
#################################[ This file is placed in the Public Domain. ]# # Front-end selection # # Front-ends accept incoming requests on your behalf and forward them to # your PageKite, which in turn forwards them to the actual server. You # probably need at least one, the service defaults will choose one for you. # Use the pagekite.net service defaults. # defaults # If you want to use your own, use something like: # frontend = hostname:port # or: # frontends = COUNT:dnsname:port isfrontend ports=80,443 protos=http,https,raw domain=http,https,raw:*.pagekite.your_domain:examplepassword rawports=virtual
Hãy giải thích từng dòng một. Đầu tiên, để cấu hình PageKite làm server front-end, ta đã thêm dòng isfrontend
. Để cấu hình các cổng mà server sẽ lắng nghe, ta đã thêm ports=80,443
. Ta cũng đã cấu hình các giao thức mà PageKite sẽ chuyển sang proxy. Để sử dụng HTTP, HTTPS và RAW (được sử dụng bởi các kết nối SSH), ta thêm dòng protos=http,https,raw
. Ta cũng vô hiệu hóa cài đặt defaults
để không có cấu hình xung đột cho server .
Bên cạnh đó, ta đã cấu hình domain mà ta sẽ sử dụng cho front-end-server
. Đối với mỗi client , một domain phụ sẽ được sử dụng, đó là lý do tại sao ta cần cấu hình DNS trong phần Yêu cầu . Ta cũng cài đặt một password sẽ được sử dụng để xác thực khách hàng. Sử dụng password examplepassword
password giữ chỗ, những cấu hình này được thực hiện bằng cách thêm domain=http,https,raw:*.pagekite. your_domain : examplepassword
dòng domain=http,https,raw:*.pagekite. your_domain : examplepassword
. Cuối cùng, ta đã thêm một dòng bổ sung để kết nối bằng SSH (không được ghi chép lại, như đã thảo luận ở đây ): rawports=virtual
.
Lưu file và thoát khỏi nano
. Khởi động lại dịch vụ PageKite bằng lệnh:
- sudo systemctl restart pagekite.service
Sau đó cho phép nó bắt đầu khi server khởi động với:
- sudo systemctl enable pagekite.service
Bây giờ ta đã chạy front-end-server
, hãy kiểm tra nó bằng cách để lộ một cổng HTTP trên remote-host
và kết nối với remote-host
đó từ local-host
.
Bước 4 - Kết nối với server lưu trữ đằng sau NAT
Để kiểm tra front-end-server
, hãy khởi động một dịch vụ HTTP trên remote-host
và đưa nó lên internet bằng cách sử dụng PageKite, để ta có thể kết nối với nó từ local-host
. Lưu ý , ta phải kết nối với remote-host
bằng console DigitalOcean, vì ta đã cấu hình firewall để từ chối các kết nối SSH đến.
Để khởi động một server HTTP để thử nghiệm, ta có thể sử dụng module http.server
Python 3. Vì Python đã được cài đặt ngay cả trên bản cài đặt Debian tối thiểu và http.server
là một phần của thư viện Python tiêu chuẩn, để khởi động server HTTP bằng cổng 8000
trên remote-host
ta sẽ chạy:
- python3 -m http.server 8000 &
Vì Debian 9 vẫn sử dụng Python 2 theo mặc định, nên cần gọi Python bằng cách chạy python3
để khởi động server . Kết thúc &
ký tự cho biết lệnh chạy ở chế độ nền để ta vẫn có thể sử dụng shell terminal. Kết quả kết quả sẽ cho biết server đang chạy:
sammy@remote-host:~$ python3 -m http.server 8000 & [1] 1782 sammy@remote-host:~$ Serving HTTP on 0.0.0.0 port 8000 ...
Lưu ý: Số 1782
xuất hiện trong kết quả này đề cập đến ID được gán cho quá trình bắt đầu bằng lệnh này và có thể khác nhau tùy thuộc vào lần chạy. Vì nó đang chạy ở chế độ nền, ta có thể sử dụng ID này để kết thúc (giết) quá trình bằng cách đưa ra kill -9 1782
.
Với server HTTP đang chạy, ta có thể cài đặt tunnel PageKite. Một cách nhanh chóng để thực hiện việc này là sử dụng tập lệnh pagekite.py
. Ta có thể tải nó xuống remote-host
đang chạy:
- wget https://pagekite.net/pk/pagekite.py
Sau khi download , hãy đánh dấu nó là thực thi bằng lệnh:
- chmod a+x pagekite.py
Lưu ý: Vì PageKite được viết bằng Python 2 và đây là version mặc định hiện tại của Python trong Debian 9 nên lệnh tiếp tục hoạt động mà không có lỗi. Tuy nhiên, vì Python mặc định đang được di chuyển dần dần sang Python 3 trong một số bản phân phối Linux, có thể cần phải thay đổi dòng đầu tiên của tập lệnh pagekite.py
để đặt nó chạy với Python 2 (đặt nó thành #!/usr/bin/python2
).
Với pagekite.py
có sẵn trong folder hiện tại, ta có thể kết nối với front-end-server
và hiển thị server HTTP trên domain remote-host.pagekite. your_domain
bằng cách chạy phần sau, thay thế your_domain
và examplepassword
bằng thông tin đăng nhập của bạn :
- ./pagekite.py --clean --frontend=pagekite.your_domain:80 --service_on=http:remote-host.pagekite.your_domain:localhost:8000:examplepassword
Hãy xem các đối số trong lệnh này:
--clean
được sử dụng để bỏ qua cấu hình mặc định.--frontend=pagekite. your_domain :80
chỉ định địa chỉ của giao diện user của ta . Lưu ý ta đang sử dụng cổng80
, vì ta đã đặt giao diện user để chạy trên cổng này ở Bước 3.- Trong đối số cuối cùng,
--service_on=http:remote-host.pagekite. your_domain :localhost:8000: examplepassword
, ta cài đặt dịch vụ mà ta sẽ giới thiệu (http
), domain ta sẽ sử dụng (remote-host.pagekite. your_domain
), địa chỉ local và cổng nơi dịch vụ đang chạy (localhost:8000
vì ta đang tiết lộ một dịch vụ trên cùng một server mà ta đang sử dụng để kết nối với PageKite) và password để kết nối với giao diện user (examplepassword
).
Khi lệnh này được chạy, ta sẽ thấy thông báo Kites are flying and all is well
hiển thị Kites are flying and all is well
trong console . Sau đó, ta có thể mở cửa sổ trình duyệt trong phiên VNC local-host
và sử dụng nó để truy cập server HTTP trên server remote-host
bằng cách truy cập địa chỉ http://remote-host.pagekite. your_domain
. Điều này sẽ hiển thị hệ thống file cho remote-host
:
Để dừng kết nối của PageKite trên remote-host
, hãy nhấn CTRL+C
trong console remote-host
.
Bây giờ ta đã thử nghiệm front-end-server
, hãy cấu hình remote-host
để kết nối với PageKite được bền vững và bắt đầu khi server khởi động .
Bước 5 - Làm cho cấu hình server lưu trữ ổn định
Kết nối giữa remote-host
front-end-server
mà ta cài đặt ở Bước 4 không liên tục, nghĩa là kết nối sẽ không được cài đặt lại khi server được khởi động lại. Đây sẽ là một vấn đề nếu bạn muốn sử dụng giải pháp này lâu dài, vì vậy hãy thực hiện cài đặt này liên tục.
Có thể cài đặt PageKite để chạy như một dịch vụ trên remote-host
, để nó được khởi động khi server khởi động . Để thực hiện việc này, ta có thể sử dụng các gói phân phối tương tự mà ta đã sử dụng cho front-end-server
trong Bước 3. Trong console remote-host
truy cập thông qua console DigitalOcean, hãy chạy lệnh sau để cài đặt dirmngr
:
- sudo apt-get install dirmngr
Sau đó, để thêm repository PageKite và nhập khóa GPG, hãy chạy:
- echo deb http://pagekite.net/pk/deb/ pagekite main | sudo tee -a /etc/apt/sources.list
- sudo apt-key adv --recv-keys --keyserver keys.gnupg.net AED248B1C7B2CAC3
Để cập nhật danh sách gói và cài đặt PageKite, hãy chạy:
- sudo apt-get update
- sudo apt-get install pagekite
Để cài đặt PageKite làm ứng dụng client , ta sẽ cấu hình địa chỉ và cổng của front-end-server
trong file /etc/pagekite.d/20_frontends.rc
. Ta có thể chỉnh sửa nó bằng nano
:
- sudo nano /etc/pagekite.d/20_frontends.rc
Trong file này, hãy chú thích dòng với các giá trị defaults
để tránh sử dụng các giá pagekite.net
mặc định của dịch vụ pagekite.net
. Ngoài ra, hãy cấu hình địa chỉ và cổng của front-end-server
bằng cách sử dụng frontend
tham số, thêm dòng frontend = pagekite. your_domain :80
đến cuối file . Đảm bảo thay thế your_domain
bằng domain bạn đang sử dụng.
Đây là toàn bộ file với các dòng đã chỉnh sửa được đánh dấu:
#################################[ This file is placed in the Public Domain. ]# # Front-end selection # # Front-ends accept incoming requests on your behalf and forward them to # your PageKite, which in turn forwards them to the actual server. You # probably need at least one, the service defaults will choose one for you. # Use the pagekite.net service defaults. # defaults # If you want to use your own, use something like: frontend = pagekite.your_domain:80 # or: # frontends = COUNT:dnsname:port
Sau khi lưu các sửa đổi và thoát nano
, hãy tiếp tục cấu hình bằng cách chỉnh sửa file /etc/pagekite.d/10_account.rc
và đặt thông tin xác thực để kết nối với front-end-server
. Đầu tiên, hãy mở file bằng lệnh:
- sudo nano /etc/pagekite.d/10_account.rc
Để cài đặt domain , ta sẽ sử dụng domain và password để kết nối với front-end-server
của ta , chỉnh sửa các thông số kitename
và kitesecret
tương ứng. Ta cũng phải comment dòng cuối cùng của file để kích hoạt cấu hình, như được đánh dấu tiếp theo:
#################################[ This file is placed in the Public Domain. ]# # Replace the following with your account details. kitename = remote-host.pagekite.your_domain kitesecret = examplepassword # Delete this line! # abort_not_configured
Lưu và thoát khỏi editor .
Bây giờ ta sẽ cấu hình các dịch vụ của ta sẽ được hiển thị trên internet. Đối với các dịch vụ HTTP và SSH, PageKite bao gồm các file cấu hình mẫu có phần mở rộng kết thúc bằng .sample
trong folder cấu hình /etc/pagekite.d
của nó. Hãy bắt đầu bằng cách sao chép file cấu hình mẫu thành file hợp lệ cho HTTP:
- cd /etc/pagekite.d
- sudo cp 80_httpd.rc.sample 80_httpd.rc
Tệp cấu hình HTTP gần như đã được cài đặt . Ta chỉ phải điều chỉnh cổng HTTP mà ta có thể thực hiện bằng cách chỉnh sửa file ta vừa sao chép:
- sudo nano /etc/pagekite.d/80_httpd.rc
Tham số service_on
xác định địa chỉ và cổng của dịch vụ mà ta muốn hiển thị. Theo mặc định, nó hiển thị localhost:80
. Vì server HTTP của ta sẽ chạy trên cổng 8000
, ta chỉ cần thay đổi số cổng, như được đánh dấu tiếp theo:
#################################[ This file is placed in the Public Domain. ]# # Expose the local HTTPD service_on = http:@kitename : localhost:8000 : @kitesecret # If you have TLS/SSL configured locally, uncomment this to enable end-to-end # TLS encryption instead of relying on the wild-card certificate at the relay. #service_on = https:@kitename : localhost:443 : @kitesecret # # Uncomment the following to globally DISABLE the request firewall. Do this # if you are sure you know what you are doing, for more details please see # <http://pagekite.net/support/security/> # #insecure # # To disable the firewall for one kite at a time, use lines like this:: # #service_cfg = KITENAME.pagekite.me/80 : insecure : True
Lưu ý: Cú pháp tham số service_on
tương tự như cú pháp được sử dụng với tập lệnh pagekite.py
. Tuy nhiên, domain mà ta sẽ sử dụng và password được lấy từ file /etc/pagekite.d/10_account.rc
và được chèn bởi các dấu @kitename
và @kitesecret
tương ứng.
Sau khi lưu các sửa đổi cho file cấu hình này, ta phải khởi động lại dịch vụ để các thay đổi có hiệu lực:
- sudo systemctl restart pagekite.service
Để khởi động dịch vụ khi khởi động, hãy bật dịch vụ với:
- sudo systemctl enable pagekite.service
Cũng giống như ta đã làm trước đây, sử dụng module Python http.server
để mô phỏng server HTTP của ta . Nó sẽ chạy kể từ khi ta bắt đầu nó chạy ở chế độ nền ở Bước 4. Tuy nhiên, nếu vì lý do nào đó mà nó không chạy, ta có thể bắt đầu lại với:
- python3 -m http.server 8000 &
Bây giờ ta có server HTTP và dịch vụ PageKite đang chạy, hãy mở cửa sổ trình duyệt trong phiên VNC local-host
và sử dụng nó để truy cập remote-host
bằng cách sử dụng địa chỉ http://remote-host.pagekite. your_domain
. Thao tác này sẽ hiển thị hệ thống file của remote-host
trong trình duyệt.
Ta đã biết cách cấu hình server front-end PageKite và client để hiển thị server HTTP local . Tiếp theo, ta sẽ cài đặt remote-host
để hiển thị SSH và cho phép kết nối từ xa.
Bước 6 - Hiển thị SSH với PageKite
Bên cạnh HTTP, PageKite được dùng để ủy quyền cho các dịch vụ khác, chẳng hạn như SSH, rất hữu ích để truy cập các server từ xa sau NAT trong môi trường không thể sửa đổi cấu hình mạng và bộ định tuyến.
Trong phần này, ta sẽ cấu hình remote-host
để hiển thị dịch vụ SSH của nó bằng cách sử dụng PageKite, sau đó mở một phiên SSH từ local-host
.
Giống như ta đã thực hiện để cấu hình HTTP với PageKite, đối với SSH, ta sẽ sao chép file cấu hình mẫu thành file hợp lệ để hiển thị dịch vụ SSH trên remote-host
:
- cd /etc/pagekite.d
- sudo cp 80_sshd.rc.sample 80_sshd.rc
Tệp này được cấu hình trước để hiển thị dịch vụ SSH đang chạy trên cổng 22
, đây là cấu hình mặc định. Hãy cùng xem nội dung của nó:
- nano 80_sshd.rc
Điều này sẽ hiển thị cho bạn file :
#################################[ This file is placed in the Public Domain. ]# # Expose the local SSH daemon service_on = raw/22:@kitename : localhost:22 : @kitesecret
Tệp này rất giống với file được sử dụng để hiển thị HTTP. Sự khác biệt duy nhất là số cổng, là 22
cho SSH và giao thức, phải được đặt thành raw
khi hiển thị SSH.
Vì ta không cần thực hiện bất kỳ thay đổi nào ở đây, hãy thoát khỏi file .
Khởi động lại dịch vụ PageKite:
- sudo systemctl restart pagekite.service
Lưu ý: Ta cũng có thể hiển thị SSH bằng cách sử dụng tập lệnh pagekite.py
nếu dịch vụ PageKite chưa được cài đặt. Ta sẽ chỉ cần sử dụng đối số --service-on
, đặt giao thức thành raw
với domain và password thích hợp. Ví dụ: để hiển thị nó bằng cách sử dụng cùng các tham số mà ta đã cấu hình trong dịch vụ PageKite, ta sẽ sử dụng lệnh ./pagekite.py --clean --frontend=pagekite. your_domain :80 --service_on=raw:remote-host.pagekite. your_domain :localhost:22: examplepassword
.
Trên local-host
, ta sẽ sử dụng client SSH để kết nối với remote-host
. PageKite tạo tunnel cho các kết nối bằng HTTP, để sử dụng SSH qua PageKite, ta cần một proxy HTTP. Có một số tùy chọn về proxy HTTP mà ta có thể sử dụng từ repository Debian, chẳng hạn như Netcat ( nc
) và corkscrew
. Đối với hướng dẫn này, ta sẽ sử dụng corkscrew
, vì nó yêu cầu ít đối số hơn nc
.
Để cài đặt corkscrew
trên local-host
, hãy sử dụng apt-get install
với gói cùng tên:
- sudo apt-get install corkscrew
Tiếp theo, tạo SSH key trên local-host
và nối public key vào file .ssh/authorized_keys
của remote-host
. Để thực hiện việc này, hãy làm theo hướng dẫn Cách cài đặt SSH key trên Debian 9 , bao gồm phần Sao chép public key theo cách thủ công ở Bước 2.
Để kết nối với server SSH bằng proxy, ta sẽ sử dụng ssh
với đối số -o
để chuyển vào ProxyCommand
và chỉ định corkscrew
làm proxy HTTP. Bằng cách này, trên local-host
, ta sẽ chạy lệnh sau để kết nối với remote-host
thông qua tunnel PageKite:
- ssh sammy@remote-host.pagekite.your_domain -i ~/id_rsa -o "ProxyCommand corkscrew %h 80 %h %p"
Lưu ý ta đã cung cấp một số đối số để corkscrew
. Các %h
và %p
là thẻ mà này thay thế SSH client bằng tên từ xa server ( remote-host.pagekite. your_domain
) và cổng từ xa ( 22
, ngầm được sử dụng bởi ssh
) khi nó chạy corkscrew
. 80
đề cập đến cổng mà PageKite đang chạy. Cổng này đề cập đến giao tiếp giữa client PageKite và server front-end.
Khi bạn chạy lệnh này trên local-host
, dòng lệnh nhắc remote-host
sẽ xuất hiện.
Với kết nối SSH của ta hoạt động qua PageKite, tiếp theo hãy đặt một phiên VNC trên remote_server
và truy cập nó từ local-host
bằng VNC qua SSH.
Bước 7 - Sử dụng VNC Over SSH
Bây giờ ta có thể truy cập một server từ xa bằng cách sử dụng một shell , giải quyết rất nhiều vấn đề nảy sinh từ các server ẩn sau NAT. Tuy nhiên, trong một số trường hợp, ta yêu cầu quyền truy cập vào giao diện user đồ họa. SSH cung cấp một cách tạo tunnel cho bất kỳ dịch vụ nào trong kết nối của nó, chẳng hạn như VNC, được dùng để truy cập từ xa bằng đồ họa.
Với remote-host
cấu hình để hiển thị SSH bằng server front-end của ta , hãy sử dụng kết nối SSH để tạo tunnel VNC và có quyền truy cập vào giao diện đồ họa remote-host
.
Vì ta đã cấu hình một phiên VNC để bắt đầu tự động trên remote-host
, ta sẽ sử dụng local-host
để kết nối với remote-host
bằng ssh
với đối số -L
:
- ssh sammy@remote-host.pagekite.your_domain -i ~/id_rsa -o "ProxyCommand corkscrew %h 80 %h %p" -L5902:localhost:5901
Đối số -L
chỉ định rằng các kết nối đến một cổng local nhất định phải được chuyển tiếp đến một server và cổng từ xa. Cùng với đối số này, ta đã cung cấp một số cổng theo sau là dấu hai chấm, sau đó là địa chỉ IP, domain hoặc tên server , theo sau là dấu hai chấm khác và số cổng. Hãy cùng xem chi tiết thông tin này:
- Số cổng đầu tiên đề cập đến cổng mà ta sẽ sử dụng trên server đang bắt đầu kết nối SSH (trong trường hợp này
local-host
), để nhận kết nối tunnel từ server từ xa. Trong trường hợp này, từ quan điểm củalocal-host
, Phiên VNC từremote-host
từremote-host
sẽ khả dụng local trên cổng5902
. Ta không thể sử dụng cổng5901
vì nó đã được sử dụng trênlocal-host
cho phiên VNC của riêng nó. - Sau dấu hai chấm đầu tiên, ta cung cấp tên server (hoặc địa chỉ IP) của thiết bị đang phục vụ phiên VNC mà ta muốn tạo tunnel . Nếu ta cung cấp tên server , tên server đó sẽ được phân giải thành địa chỉ IP bởi server đang cung cấp SSH. Trong trường hợp này, vì
remote-host
từremote-host
đang phục vụ kết nối SSH và phiên VNC cũng được phục vụ bởi server này, ta có thể sử dụnglocalhost
. - Sau dấu hai chấm, ta cung cấp cổng mà dịch vụ được đào hầm được phục vụ. Ta sử dụng cổng
5901
, vì VNC đang chạy trên cổng này trênremote-host
.
Sau khi kết nối được cài đặt , ta sẽ thấy một shell remote-host
trên remote-host
.
Bây giờ ta có thể truy cập phiên VNC remote-host
local-host
bằng cách kết nối với chính cổng 5902
. Để làm như vậy, hãy mở một shell từ GUI local-host
trong ứng dụng client VNC của bạn, sau đó chạy:
- vncviewer localhost:5902
Sau khi cung cấp password VNC cho remote-host
, ta sẽ có thể truy cập vào môi trường đồ họa của nó.
Lưu ý: Nếu phiên VNC đã chạy quá lâu, bạn có thể gặp lỗi trong đó GUI trên remote-host
được thay thế bằng màn hình màu xám với dấu X
cho con trỏ. Nếu điều này xảy ra, hãy thử khởi động lại phiên VNC trên remote-host
bằng sudo systemctl restart vncserver@1
. Khi dịch vụ đang chạy, hãy thử kết nối lại.
Cài đặt này có thể hữu ích cho các group hỗ trợ sử dụng quyền truy cập từ xa. Có thể sử dụng SSH để tạo tunnel cho bất kỳ dịch vụ nào có thể được truy cập bởi remote-host
. Bằng cách này, ta có thể cài đặt remote-host
làm cổng vào mạng local gắn liền với nhiều server , bao gồm một số máy đang chạy Windows hoặc một hệ điều hành khác. Miễn là các server có server VNC với phiên VNC được cài đặt , có thể truy cập chúng bằng giao diện user đồ họa thông qua SSH được tạo bởi front-end-server
PageKite của ta .
Trong bước cuối cùng, ta sẽ cấu hình giao diện user PageKite để hỗ trợ nhiều client hơn với các password khác nhau.
Bước 8 - Cấu hình Server Front-End cho Nhiều Khách hàng (Tùy chọn)
Giả sử ta sẽ sử dụng front-end-server
mình để cung cấp quyền truy cập từ xa cho nhiều client . Trong cài đặt nhiều user này, cách tốt nhất là cô lập họ, sử dụng domain và password khác nhau cho mỗi người để kết nối với server của ta . Một cách để thực hiện việc này là chạy một số dịch vụ PageKite trên server của ta trên các cổng khác nhau, mỗi cổng được cấu hình với domain phụ và password riêng, nhưng điều này có thể khó tổ chức.
May mắn là giao diện user của PageKite hỗ trợ cấu hình của chính nhiều client , để ta có thể sử dụng cùng một dịch vụ trên một cổng duy nhất. Để làm điều này, ta sẽ cấu hình giao diện user với domain và password .
Như ta đã cấu hình mục DNS ký tự đại diện *.pagekite. your_domain
trỏ đến front-end-server
của ta , các mục nhập DNS trong các domain phụ như remote-host.client-1.pagekite. your_domain
cũng có thể chỉ ra server của ta để ta có thể sử dụng các domain kết thúc bằng client1.pagekite. your_domain
và client2.pagekite. your_domain
để xác định các server của các client khác nhau với các password khác nhau.
Để thực hiện việc này trên front-end-server
, hãy mở file /etc/pagekite.d/20_frontends.rc
:
- sudo nano /etc/pagekite.d/20_frontends.rc
Thêm các domain bằng cách sử dụng từ khóa domain
và đặt các password khác nhau cho từng domain
. Để cài đặt các domain mà ta đã đề cập, hãy thêm:
#################################[ This file is placed in the Public Domain. ]# # Front-end selection # # Front-ends accept incoming requests on your behalf and forward them to # your PageKite, which in turn forwards them to the actual server. You # probably need at least one, the service defaults will choose one for you. # Use the pagekite.net service defaults. # defaults # If you want to use your own, use something like: # frontend = hostname:port # or: # frontends = COUNT:dnsname:port isfrontend ports=80,443 protos=http,https,raw domain=http,https,raw:*.pagekite.your_domain:examplepassword domain=http,https,raw:*.client-1.pagekite.your_domain:examplepassword2 domain=http,https,raw:*.client-2.pagekite.your_domain:examplepassword3 rawports=virtual
Lưu và thoát khỏi file .
Sau khi sửa đổi các file cấu hình, hãy khởi động lại PageKite:
- sudo systemctl restart pagekite.service
Trên server từ xa, hãy cấu hình client PageKite để kết nối theo domain và password mới. Ví dụ, trong remote-host
, để kết nối bằng client-1.pagekite. your_domain
, sửa đổi file /etc/pagekite.d/10_account.rc
, nơi lưu trữ thông tin đăng nhập để kết nối với front-end-server
:
- sudo nano /etc/pagekite.d/10_account.rc
Thay đổi kitename
và kitesecret
thành thông tin đăng nhập thích hợp. Đối với domain remote-host.client-1.pagekite. your_domain
, cấu hình sẽ là:
#################################[ This file is placed in the Public Domain. ]# # Replace the following with your account details. kitename = remote-host.client-1.pagekite.your_domain kitesecret = examplepassword2 # Delete this line!
Lưu và thoát khỏi file .
Sau khi sửa đổi file , hãy khởi động lại dịch vụ PageKite:
- sudo systemctl restart pagekite.service
Như vậy, trên local-host
, ta có thể kết nối với remote-host
qua SSH với:
- ssh sammy@remote-host.client-1.pagekite.your_domain -i ~/id_rsa -o "ProxyCommand corkscrew %h 80 %h %p"
Ta có thể sử dụng domain client-2.pagekite. your-domain
cho một khách hàng khác. Bằng cách này, ta có thể quản lý các dịch vụ theo cách riêng biệt, với khả năng thay đổi password của một client hoặc thậm chí vô hiệu hóa một trong số chúng mà không ảnh hưởng đến client khác.
Kết luận
Trong bài viết này, ta cài đặt một server front-end PageKite riêng trên Debian 9 Server và sử dụng nó để hiển thị các dịch vụ HTTP và SSH trên một server từ xa phía sau NAT. Sau đó, ta kết nối với các dịch vụ này từ local-host
và xác minh chức năng của PageKite. Như ta đã đề cập, đây có thể là một cài đặt hiệu quả cho các ứng dụng truy cập từ xa, vì ta có thể tạo tunnel cho các dịch vụ khác trong kết nối SSH, chẳng hạn như VNC.
Nếu bạn muốn tìm hiểu thêm về PageKite, hãy xem Thông tin hỗ trợ của PageKite . Nếu bạn muốn tìm hiểu sâu hơn về mạng với Server, hãy xem qua Tài liệu về mạng của DigitalOcean .
Các tin liên quan
Cách thiết lập server trang kết thúc phía trước PageKite trên Debian 92019-10-25
Cách cài đặt Linux, Apache, MariaDB, PHP (LAMP) trên Debian 10
2019-07-15
Thiết lập server ban đầu với Debian 10
2019-07-08
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Debian 10
2019-07-08
Cách xây dựng và triển khai server GraphQL với Node.js và MongoDB trên Ubuntu 18.04
2019-04-18
Cách thiết lập thủ công server Prisma trên Ubuntu 18.04
2019-01-11
Kết xuất phía server với Angular Universal
2019-01-10
Cách cài đặt và cấu hình pgAdmin 4 ở Chế độ server
2018-10-19
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Debian 8
2018-10-18
Cách cài đặt Linux, Nginx, MySQL, PHP ( LEMP) trên Debian 9
2018-09-13