使用 ubuntu 打造 NAS


Ubuntu 文件管理軟件安裝

Ubuntu 的安裝

參考: https://www.cnblogs.com/masbay/p/10745170.html

開啟 ssh 服務

Ubuntu 默認不會開啟 ssh 服務。所以我們無法對 Ubuntu 進行遠程連接,這對 Ubuntu 的運維造成了很大不便。本文詳細講解如何在 Ubuntu18 下開啟 ssh 服務。

關鍵指令(root 用戶下,非 root 用戶所有指令前加 sudo)

*ps -e | grep ssh(查看 ssh 服務是否開啟)*

*apt-get install openssh-client(安裝 ssh 客戶端程序)*

*apt-get install openssh-server(安裝 ssh 服務端程序)*

*service ssh start 或者 /etc/init.d/ssh start(開啟 ssh 服務)*

*service ssh stop 或者 /etc/init.d/ssh stop(關閉 ssh 服務)*

*指令 1:ps -e | grep ssh( 查看 ssh 服務是否開啟)*

運行ps -e | grep ssh得出如圖一的兩行結果。ssh-agent 指的是 ubuntu 的 ssh 服務的客戶端,用於該 ubuntu 遠程連接其它 Linux 主機。sshd 指的是 ubuntu 的 ssh 服務的服務端,用於其它主機通過 ssh 服務連接該主機。

換句話說,如果沒有 sshd 進程的話,別的系統是不能連接該 ubuntu 主機的,若是沒有 ssh-agent 的話,該 ubuntu 主機也無法通過 ssh 連接其它主機。

*指令 2:apt-get install openssh-client(安裝 ssh 客戶端程序)*

若是運行*ps -e | grep ssh*沒有查出 ssh-agent 服務,但是你又想通過 ssh 服務連接別的系統。那么就執行*apt-get install openssh-client*安裝 ssh 客戶端。接着執行ssh 目標用戶@目標 ip即可連接目標主機。正常情況 Ubuntu 默認開啟 ssh-agent 服務。所以一般用不打指令 2。

*指令 3:apt-get install openssh-server(安裝 ssh 服務端程序)*

默認 ssh 的服務端是沒有安裝的,可用*ps -e | grep ssh*查看。若是沒有 sshd 的進程,則運行apt-get install openssh-server安裝 ssh 服務端。接着重新執行 ps -e | grep ssh 便可發現 sshd 已啟動。至此,其它主機便可通過 ssh 連接該主機。

sshd 和 ssh-agent 都已經啟動。其它主機便可通過 ssh 連接該主機

*指令 4:service ssh start 或者 /etc/init.d/ssh start(開啟 ssh 服務)*

*指令 5:service ssh stop 或者 /etc/init.d/ssh stop(關閉 ssh 服務)*

指令 4 和指令 5 便是開啟和關閉 sshd 服務進程的。

以上便是 Ubuntu18 下安裝開啟 ssh 進程的所有流程。
來源:https://www.jianshu.com/p/4b50b55ebb4d

問題

SSH連服務器提示“Permission denied(publickey,...).”的原因與解決辦法

原因分析:

錯誤提示的大意是拒絕許可,括號中的各種驗證失敗或未能驗證

解決辦法:

(1)編輯/etc/ssh/sshd_config配置文件:

vim /etc/ssh/sshd_config 

(2)將 第34行左右的 PermitRootLogin 設置為 yes 第58行左右的 PasswordAuthentication 設置為yes,如下圖

image-20220527213951303

(3)重啟sshd服務

 systemctl restart sshd

Samba 共享文件服務

參考:https://www.linuxidc.com/Linux/2018-11/155466.htm

FTP 文件傳輸服務

安裝完 ssh 就可以使用 sftp ,也可以再裝一個 vsftpd

運行:sudo apt-get install vsftpd 命令,安裝 VSFTP 工具

安裝好了之后,使用如下命令啟動 FTP 服務:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

查看是否開啟

sudo ss -tunlp | grep -i ftp

Gitlab

安裝

gitlab 企業版 --> ee

gitlab 社區版 --> ce

tip 官方文檔很詳細 建議查看官方文檔

官方社區版安裝教程:https://docs.gitlab.com/ce/install/

推薦使用 docker 容器方式:

docker容器方式安裝教程

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 9443:443 --publish 9080:80 --publish 9022:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:latest

docker容器方式配置教程

內網穿透

ZeroTier One

安裝 ZeroTier One 內網穿透

官網:https://www.zerotier.com/

使用這行命令安裝 ZeroTier One

curl -s https://install.zerotier.com/ | sudo bash

復制下面代碼,將 NetWork ID 從 zerotier 官方網站中復制到下面代碼中

sudo zerotier-cli join (NetWork ID)

若出現”200 join OK”則添加成功

frp

安裝 frp 內網穿透

官方文檔

下載

目前可以在 Github 的 Release 頁面中下載到最新版本的客戶端和服務端二進制文件,所有文件被打包在一個壓縮包中。

部署

解壓縮下載的壓縮包,將其中的 frpc 拷貝到內網服務所在的機器上,將 frps 拷貝到具有公網 IP 的機器上,放置在任意目錄。

開始使用

編寫配置文件,先通過 ./frps -c ./frps.ini 啟動服務端,再通過 ./frpc -c ./frpc.ini 啟動客戶端。如果需要在后台長期運行,建議結合其他工具使用,例如 systemdsupervisor

如果是 Windows 用戶,需要在 cmd 終端中執行命令。

配置文件如何編寫可以參考 示例 中的內容。

這個示例通過簡單配置 TCP 類型的代理讓用戶訪問到內網的服務器。

阿里雲配置

需要開啟防火牆 中的對應端口 7000 6000 ...

通過 SSH 訪問內網機器

  1. 在具有公網 IP 的機器上部署 frps,修改 frps.ini 文件,這里使用了最簡化的配置,設置了 frp 服務器用戶接收客戶端連接的端口:

    [common]
    bind_port = 7000 # 用於與 frpc 連接
    
  2. 在需要被訪問的內網機器上(SSH 服務通常監聽在 22 端口)部署 frpc,修改 frpc.ini 文件,假設 frps 所在服務器的公網 IP 為 x.x.x.x:

    [common]
    server_addr = test.com
    server_port = 7000  # 用於與 frps 連接
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000  # 代理 訪問 test.com:6000 相當於訪問 127.0.0.1:22
    

    local_iplocal_port 配置為本地需要暴露到公網的服務地址和端口。remote_port 表示在 frp 服務端監聽的端口,訪問此端口的流量將會被轉發到本地服務對應的端口。

  3. 分別啟動 frps 和 frpc。

  4. 通過 SSH 訪問內網機器,假設用戶名為 test:

    ssh -oPort=6000 test@x.x.x.x

    frp 會將請求 x.x.x.x:6000 的流量轉發到內網機器的 22 端口。

    MEIFGMOCJGAGTQFR


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM