Alpine 配置 SSH 服务

点击查看教程

1、Alpine 安装SSH

1
apk add --no-cache openssh-server

2、查看SSH配置文件

1
cat /etc/ssh/sshd_config

3、修改 sshd_config 配置文件+

1
2
3
4
5
6
sudo sed -i.bak \
-e '/Port 22/ a Port 22' \
-e '/PermitRootLogin/ a PermitRootLogin yes' \
-e '/ClientAliveInterval/ a ClientAliveInterval 10' \
-e '/ClientAliveCountMax/ a ClientAliveCountMax 999' \
/etc/ssh/sshd_config

4 、重启 ssh 服务

1
service sshd restart && ip addr show eth0 | grep eth0
具体配置配置说明
Port 22SSH 服务监听端口
PermitRootLogin yes允许 root 用户通过 SSH 登录
GSSAPIAuthentication no禁用 GSSAPI 认证以提高安全性
UseDNS no禁用 DNS 反向解析,加快 SSH 连接速度
ClientAliveInterval 10每 10 秒发送一次保活消息给客户端
ClientAliveCountMax 999允许客户端连续 999 次无响应才断开连接

Alpine 配置 samba 服务

点击查看教程

一 、配置 samba 基础设置

1 、Alpine新建共享文件夹+安装samba

1
mkdir -pm 755 /mnt/mydisk && apk update && apk add samba shadow

2 、新建admin用户+设置密码

1
useradd admin && smbpasswd -a admin

二 、Alpine为服务端samba配置
1 、备份samba配置文件

1
cp -i /etc/samba/smb.conf /etc/samba/smb.conf.bak && cd /etc/samba && ls

2 、方法一、覆盖samba配置文件+添加 Samba 到启动项+启动 Samba 服务+查看ip地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
mkdir -pm 755 /mnt && chmod +x /etc/samba/smb.conf && cat > /etc/samba/smb.conf <<'EOF'
###################################
######## samba全局配置 ########
[global]
## 设置工作组名称
workgroup = WORKGROUP
## 设置非活动连接被关闭的时间(分钟)
deadtime = 99
## 服务器描述字符串
server string = Samba on Alpine
## 设置网络基本输入/输出系统(NetBIOS)名称
netbios name = Alpine
## Unix字符集设置为UTF-8
unix charset = UTF-8
## 禁用核心转储
enable core files = no
## 设置安全模式为用户级别
security = user
## 将未知用户映射为访客
map to guest = Bad User
## 允许客户端访问具有空密码的账户
null passwords = yes
## 设置socket选项,优化网络传输性能
socket options = IPTOS_LOWDELAY TCP_NODELAY
## 设置最大传输单元大小
max xmit = 131072
## 设置最小接收文件大小,用于异步I/O操作
min receivefile size = 131072
## 启用假的机会锁
fake oplocks = Yes
## 启用sendfile系统调用,提高文件传输效率
use sendfile = Yes
## 设置异步I/O读取阈值,0表示禁用
aio read size = 0
## 设置异步I/O写入阈值,0表示禁用
aio write size = 0
## 设置服务器支持的最低SMB协议版本
server min protocol = NT1
## 允许使用LanManager认证方式
lanman auth = yes
## 允许使用NTLMv1认证方式
ntlm auth = ntlmv1-permitted
## 禁用自动加载printcap打印机
load printers = No
## 设置打印服务不使用printcap
printcap name = /dev/null
## 禁用SPOOLSS服务
disable spoolss = yes
## 设置打印机状态信息的解释方式
printing = bsd
## 设置通过MDNS广告的服务器名称
mdns name = mdns
## 设置Samba不共享的文件和目录列表
veto files = /Thumbs.db/.DS_Store/._.DS_Store/.apdisk/
## 允许删除只包含veto文件的目录
delete veto files = yes
# 设置无效用户
# invalid users = root
## 指定服务器应该监听 SMB 流量的端口。
## 139 是 netbios/nmbd
# smb ports = 445 139

######## 我的samba共享设置 ########
[Alpine]
## 这是我的共享名称
comment = mysamba
## 共享目录的路径
path = /mnt
## 指定共享是否应该在网络邻居中被浏览到,yes显示共享名称,no隐藏共享名称。
browseable = yes
## 是否允许用户写入此共享,yes为可写入,no为不可写入。
writeable = yes
## 指定共享用户是否可读写,yes为只读,no为读写。
read only = no
## 新建文件的默认权限掩码
create mask = 0777
## 新建目录的默认权限掩码
directory mask = 0777
## 允许访客否
guest ok = no
## 强制用户为root
force user = root
## 强制组为root
force group = root
## 定义管理员用户列表
admin users = admin
## 定义允许访问此共享的有效用户列表,也可以是组名(以 @ 开头)
valid users = admin,root
## 要求密码访问
password required = yes
## 共享是否可用, yes为显示共享,no 为隐藏共享
available = yes
## 对于Apple文件进行编码
fruit:encoding = native
## 对于Apple文件元数据
fruit:metadata = stream
## 设置为 no 表示Samba不会拒绝AppleDouble文件
fruit:veto_appledouble = no
## 这些VFS模块可以增强Samba服务器的功能
vfs objects = catia fruit streams_xattr
EOF

rc-update add samba && rc-service samba start && getent hosts $(hostname) | awk '{print $1}'

3 、方法二、追加samba配置文件+添加 Samba 到启动项+启动 Samba 服务+查看ip地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
mkdir -pm 755 /mnt && chmod +x /etc/samba/smb.conf && tee -a /etc/samba/smb.conf <<'EOF'
###################################
######## 我的samba共享设置 ########
[Alpine]
## 这是我的共享名称
comment = mysamba
## 共享目录的路径
path = /mnt
## 指定共享是否应该在网络邻居中被浏览到,yes显示共享名称,no隐藏共享名称。
browseable = yes
## 是否允许用户写入此共享,yes为可写入,no为不可写入。
writeable = yes
## 指定共享用户是否可读写,yes为只读,no为读写。
read only = no
## 新建文件的默认权限掩码
create mask = 0777
## 新建目录的默认权限掩码
directory mask = 0777
## 允许访客否
guest ok = no
## 强制用户为root
force user = root
## 强制组为root
force group = root
## 定义管理员用户列表
admin users = admin
## 定义允许访问此共享的有效用户列表,也可以是组名(以 @ 开头)
valid users = admin,root
## 要求密码访问
password required = yes
## 共享是否可用, yes为显示共享,no 为隐藏共享
available = yes
## 对于Apple文件进行编码
fruit:encoding = native
## 对于Apple文件元数据
fruit:metadata = stream
## 设置为 no 表示Samba不会拒绝AppleDouble文件
fruit:veto_appledouble = no
## 这些VFS模块可以增强Samba服务器的功能
vfs objects = catia fruit streams_xattr
EOF

rc-update add samba && rc-service samba start && getent hosts $(hostname) | awk '{print $1}'

4 、方法三、一键开启SMB脚本(追加内容)

下面是一‮便个‬捷开启Smb‮脚的‬本,并且配置了Alpine目‮的录‬共享。默认共享‮号账‬为admin,密码为mobufan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
touch /root/smb.sh && cat > /root/smb.sh <<'EOF'
#!/bin/ash
apk update && apk add samba shadow
mkdir -pm 755 /mnt && cat >>/etc/samba/smb.conf <<MYENDMARK
######## 我的samba共享设置 ########
[Alpine]
## 这是我的共享名称
comment = mysamba
## 共享目录的路径
path = /mnt
## 指定共享是否应该在网络邻居中被浏览到,yes显示共享名称,no隐藏共享名称。
browseable = yes
## 是否允许用户写入此共享,yes为可写入,no为不可写入。
writeable = yes
## 指定共享用户是否可读写,yes为只读,no为读写。
read only = no
## 新建文件的默认权限掩码
create mask = 0777
## 新建目录的默认权限掩码
directory mask = 0777
## 允许访客否
guest ok = no
## 强制用户为root
force user = root
## 强制组为root
force group = root
## 定义管理员用户列表
admin users = admin
## 定义允许访问此共享的有效用户列表,也可以是组名(以 @ 开头)
valid users = admin,root
## 要求密码访问
password required = yes
## 共享是否可用, yes为显示共享,no 为隐藏共享
available = yes
## 对于Apple文件进行编码
fruit:encoding = native
## 对于Apple文件元数据
fruit:metadata = stream
## 设置为 no 表示Samba不会拒绝AppleDouble文件
fruit:veto_appledouble = no
## 这些VFS模块可以增强Samba服务器的功能
vfs objects = catia fruit streams_xattr
MYENDMARK

## 新建admin用户 && 为admin用户创建两次密码
useradd admin && (echo mobufan; echo mobufan) | smbpasswd -a -s admin
rc-service samba start
EOF

chmod +x /root/smb.sh && /root/smb.sh
1
cat /smb.sh ## 查看脚本

三 、Alpine为客户端samba配置(追加内容)

1 、Alpine为客户端samba配置(追加内容)

1
2
3
4
5
6
7
8
apk update && apk add samba shadow && mkdir -pm 755 /mnt/ARS2-SMB && tee -a /etc/fstab <<'EOF'

## Alpine为客户端samba配置(追加内容)
## 服务器地址和共享名:10.10.10.251/ARS2,挂载到本地路径: /mnt/ARS2-SMB,账户:root,密码:mobufan
//10.10.10.251/ARS2 /mnt/ARS2-SMB cifs username=root,password=mobufan 0 0
EOF

reboot

2 、查看samba用户

1
pdbedit -L

3 、添加root用户到samba—可以忽略

1
smbpasswd -a root

Alpine 配置NFS服务

点击查看教程

一 、配置 NFS 基础设置

科技lion一键脚本工具

1
sudo curl -sS -O https://kejilion.pro/kejilion.sh && chmod +x kejilion.sh && ./kejilion.sh

更新软件包+安装NFS客户端+启动nfsmount 服务+系统启‮时动‬挂载命令+启动 nfs 服务+自动启动nfs服务

1
apk update; apk add nfs-utils; rc-service nfsmount start; rc-update add nfsmount; rc-service nfs start; rc-update add nfs

二 、Alpine为服务端,NFS的配置

1
2
3
4
5
6
7
mkdir -p -m 777 /mnt/mydisk && chmod +x /etc/exports && cat > /etc/exports <<'EOF'

## 挂载/mnt/mydisk为共享目录
/mnt/mydisk *(rw,fsid=0,no_subtree_check,no_root_squash,insecure,sync)
EOF
## 让编辑生效命令
exportfs -r

三 、Alpine为客户端,NFS的配置

1、临时挂载NFS服务

  • 手动挂载10.10.10.251服务端/mnt/mydisk目录,为本地/mnt/ARS2-NFS
1
2
3
4
5
6
7
8
9
10
11
## 临时挂载10.10.10.251服务器的/mnt/mydisk文件夹,挂载到本地的/mnt/ARS2-NFS文件夹
mkdir -pm 755 /mnt/ARS2-NFS && chmod +x /etc/exports && mount -t nfs -o rw 10.10.10.251:/mnt/mydisk /mnt/ARS2-NFS && df -hT /mnt/*

## 临时挂载10.10.10.254服务器的/mnt/ntfs文件夹,挂载到本地的/mnt/PVE-NFS文件夹
mkdir -pm 755 /mnt/PVE-NFS && chmod +x /etc/exports && mount -t nfs -o rw 10.10.10.254:/mnt/ntfs /mnt/PVE-NFS && df -hT /mnt/*

## 临时挂载10.10.10.245服务器的/mnt/mydisk文件夹,挂载到本地的/mnt/Debian-NFS文件夹
mkdir -pm 755 /mnt/Debian-NFS && chmod +x /etc/exports && mount -t nfs -o rw 10.10.10.247:/mnt/mydisk /mnt/Debian-NFS && df -hT /mnt/*

## 临时挂载10.10.10.247服务器的/mnt/mydisk文件夹,挂载到本地的/mnt/Ubuntu-NFS文件夹
mkdir -pm 755 /mnt/Ubuntu-NFS && chmod +x /etc/exports && mount -t nfs -o rw 10.10.10.247:/mnt/mydisk /mnt/Ubuntu-NFS && df -hT /mnt/*

2 、永久挂载NFS服务

  • 挂载10.10.10.251服务端/mnt/mydisk目录,开机自动挂载本地文件目录为/mnt/ARS2-NFS

方法一 、覆盖NFS配置文件/etc/fstab

1
2
3
4
5
6
7
8
9
10
11
12
13
mkdir -p -m 777 /mnt/ARS2-NFS /mnt/PVE-NFS /mnt/Debian-NFS && chmod +x /etc/exports && cat > /etc/fstab <<'EOF'
## 覆盖/etc/fstab文件
## 将10.10.10.251服务器的/mnt/mydisk文件夹,挂载到本地的/mnt/ARS2-NFS文件夹
10.10.10.251:/mnt/mydisk /mnt/ARS2-NFS nfs nofail,x-systemd.device-timeout=15s 0 0

## 将10.10.10.254服务器的/mnt/ntfs文件夹,挂载到本地的/mnt/PVE-NFS文件夹
10.10.10.254:/mnt/ntfs /mnt/PVE-NFS nfs nofail,x-systemd.device-timeout=15s 0 0

## 将10.10.10.245服务器的/mnt/mydisk文件夹,挂载到本地的/mnt/Debian-NFS文件夹
10.10.10.245:/mnt/mydisk /mnt/Debian-NFS nfs nofail,x-systemd.device-timeout=15s 0 0
EOF

reboot

方法二 、追加NFS配置文件/etc/fstab

1
2
3
4
5
6
7
8
## 追加一条,挂载Debian服务器NFS
mkdir -p -m 777 /mnt/Debian-NFS && chmod +x /etc/exports && cat >>/etc/fstab <<'EOF'
## 追加一条挂载
## 将10.10.10.245服务器的/mnt/mydisk文件夹,挂载到本地的/mnt/Debian-NFS文件夹
10.10.10.245:/mnt/mydisk /mnt/Debian-NFS nfs nofail,x-systemd.device-timeout=15s 0 0
EOF
# 追加一条,挂载Debian服务器NFS
reboot

四 、取消挂载命令

1 、查看NFS挂载目录

1
df -hT /mnt/*
  • NFS挂载目录详情
    | 文件系统 | 类型 | 大小 | 已用 | 可用 | 已用% | 挂载点 |
    | :----------------------- | :–: | :–: | :–: | :–: | :—: | :-------------: |
    | 10.10.10.251:/mnt/mydisk | nfs | 2.7T | 1.8T | 823G | 69% | /mnt/ARS2-NFS |
    | 10.10.10.254:/mnt/ntfs | nfs | 932G | 216G | 717G | 24% | /mnt/PVE-NFS |
    | 10.10.10.247:/mnt/mydisk | nfs | 16G | 7.9G | 6.9G | 54% | /mnt/Ubuntu-NFS |

2 、取消挂载命令

1
umount /mnt/ARS2-NFS && df -hT /mnt/* # 这些是本地目录

五 、查看NFS共享目录

1 、查看客户端NFS共享

1
showmount -e 10.10.10.254 # 客户端查看NFS共享

2 、查看本机NFS共享目录

1
showmount -e # 本机查看NFS共享

3 、查看所有的NFS服务器挂载目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
touch ./check_nfs_shares.sh && cat > ./check_nfs_shares.sh <<EOF
#!/bin/bash
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.242 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.252 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.243 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.254 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.251 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.245 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.246 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.247 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
EOF

chmod +x ./check_nfs_shares.sh && ./check_nfs_shares.sh