易於在 Ubuntu 20.04 上安裝代碼服務器
很好的指導你在 Ubuntu 20.04 上安裝 Code-Server。Code-server v3.11.0 最新版本在任何地方的任何機器上提供 VS Code 並在瀏覽器中訪問它。
在本文中,我們將指導您在 Ubuntu 20.04 上安裝 Code-Server。
Code-server 是一個開源服務器應用程序,它可以在任何地方的任何機器上為 VS Code 提供服務,並在瀏覽器中訪問它。它允許利用強大的雲服務器來加速編譯和測試,並在旅途中節省電池。
先決條件
在 Ubuntu 20.04 上安裝 Code-Server
1.更新服務器
使服務器保持最新。
# apt update -y
# apt upgrade -y
2. 安裝代碼服務器
使用以下命令從官方存儲庫下載代碼服務器:
# cd /home
# wget https://github.com/cdr/code-server/releases/download/v3.11.0/code-server-3.11.0-linux-amd64.tar.gz
使用以下命令提取tar文件並使用代碼服務器重命名:
# tar xzf code-server-3.11.0-linux-amd64.tar.gz && rm code-server-3.11.0-linux-amd64.tar.gz
# mv code-server-3.11.0-linux-amd64 code-server
使代碼服務器二進制可執行文件。
# cd code-server
運行代碼服務器。
./code-server --port 8000
打開您的計算機瀏覽器並導航到 http://YOUR_IP_ADDRESS:8000。系統將提示您輸入密碼。使用 SSH 終端中顯示的密碼。Visual Studio Code 界面將打開。要停止服務器,請 在 SSH 終端中按 CTRL + C。
3. 創建系統啟動服務
我們可以使用 Linux 的systemd服務管理器創建一個服務。按著這些次序:
使用以下命令創建一個名為code-server.service的新文件:
# vi /lib/systemd/system/code-server.service
複製並粘貼以下內容並替換為您要設置的密碼。這將是您用於登錄代碼服務器的密碼。
[Unit]
Description=Code Server Service
After=network.target[Service]
Type=simple
Restart=on-failure
RestartSec=10
WorkingDirectory=/home/code-server
Environment='PASSWORD='
ExecStart=/home/code-server/code-server --port 8000
StandardOutput=file:/var/log/code-server-output.log
StandardError=file:/var/log/code-server-error.log[Install]
WantedBy=multi-user.target
保存並關閉文件。
現在,使用以下命令啟動並啟用code-server.service:
# systemctl daemon-reload
# systemctl start code-server
# systemctl enable code-server
打開您的計算機瀏覽器並導航到 http://YOUR_IP_ADDRESS:8000。系統將提示您輸入密碼。使用您在code-server.service文件中提到的密碼。
4. 安裝和配置 Nginx
為了通過域名訪問安裝並添加 SSL 證書,建議設置反向代理。出於此演示目的,我們使用 Nginx Web 服務器作為反向代理。
要安裝 Nginx,請使用以下命令:
# apt-get install nginx -y
禁用默認的 Nginx 站點配置文件。
# rm /etc/nginx/sites-enabled/default
為代碼服務器創建一個新的 Nginx 站點配置文件。
# vi /etc/nginx/sites-available/code-server
將以下代碼段粘貼到文件中,將 example.com 替換為您自己的域名。
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
啟用配置並重新啟動 Nginx Web 服務器。
# ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/
測試 Nginx 配置文件。
# nginx -t
如果沒有報錯,重啟nginx服務。
# systemctl restart nginx
如果您使用 UFW 作為防火牆,請允許 SSH 和 Nginx 連接通過防火牆,並啟用防火牆。這將確保代碼服務器安裝只能通過 Nginx 反向代理訪問。
# ufw allow ssh
# ufw allow 'Nginx Full'
# ufw enable
導航到您的域名以測試安裝。
5. 安裝 Let's Encrypt SSL
保持服務器和最終用戶之間的連接安全,強烈建議安裝 SSL 證書。Let's Encrypt 是一個免費的 SSL 證書,有效期為 90 天,每 90 天更新一次。我們正在使用certbot來安裝 SSL 證書。
下載並安裝 Certbot。
# apt-get install python3-certbot-nginx
執行以下命令啟動 Certbot 的命令行安裝程序,將 example.com 替換為您自己的域名。
# certbot --nginx -d example.com
繼續執行交互式安裝程序。當詢問是否將 HTTP 流量重定向到 HTTPS 時,選擇重定向。
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
6.安裝fail2ban(推薦)
Fail2ban 是一種解析日誌以檢測和減輕對服務器的自動攻擊的應用程序。當檢測到預定義數量的不成功登錄嘗試時,fail2ban 將更改服務器的 iptables 以在預定義的時間內阻止攻擊者。
安裝安裝工具。這是安裝fail2ban所必需的。
# apt-get install python3-setuptools -y
下載並安裝fail2ban。
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python3 setup.py install
cp build/fail2ban.service /lib/systemd/system/fail2ban.service
cd .. && rm -rf fail2ban
將默認配置文件 jails.conf 複製到 jails.local 並在文本編輯器中打開復制的文件。
# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local
將以下代碼段粘貼到文件底部。您可以更改 maxretry、findtime 和 bantime 參數。
[code-server]
enabled = true
logpath = /var/log/code-server-output.log
# maxretry: The amount of unsuccessful login attempts after which a ban is issued.
maxretry = 5
# findtime: The amount of time within which the login attempts must occur.
findtime = 10m
# bantime: The amount of time for which an IP is banned from accessing the server.
bantime = 10m
創建一個新的過濾器配置文件來定義過濾器模式以在代碼服務器日誌中查找不成功的登錄嘗試。
# vi /etc/fail2ban/filter.d/code-server.conf
將以下代碼段粘貼到文件中。
[Definition]
failregex = Failed login attempt {\'xForwardedFor\':\'\'.*
ignoreregex =
datepattern = "timestamp':{EPOCH}}$
重啟rsyslog服務並啟用和啟動fail2ban服務。
# systemctl restart rsyslog.service
# systemctl start fail2ban.service
# systemctl enable fail2ban.service
就是這樣。安裝成功完成。
在本文中,我們向您解釋瞭如何在 Ubuntu 20.04 上安裝 Code-Server