使用 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

posted @ 2021-10-11 13:34  __Bowen  阅读(1936)  评论(0编辑  收藏  举报