Linux 服务指南
Linux 服务指南
本指南提供了三个常用 Linux 服务的详细配置和使用方法。点击下方标签页查看不同服务的指南。
SSH 服务指南
SSH(Secure Shell)是一种用于远程登录和其他网络服务的安全协议。它通过加密的方式提供安全的通信渠道。
注
SSH 已成为 Linux/Unix 系统管理的标准工具,替代了不安全的 Telnet、rlogin 等协议。它不仅可用于远程登录,还可用于文件传输、端口转发等功能。
安装 SSH
在大多数 Linux 发行版中,您可以使用包管理器来安装 SSH 服务。
在 Debian/Ubuntu 上安装
sudo apt update
sudo apt install openssh-server在 CentOS/RHEL 上安装
sudo yum install openssh-server配置 SSH
SSH 的配置文件位于 /etc/ssh/sshd_config。在该文件中,您可以设置各种 SSH 服务的选项。
示例配置文件
以下是一个简单的 SSH 配置文件示例:
# 端口号
Port 22
# 监听地址
ListenAddress 0.0.0.0
ListenAddress ::
# 允许的用户
AllowUsers user1 user2
# 禁用密码认证,只允许密钥认证
PasswordAuthentication no
PubkeyAuthentication yes
# 启用 X11 转发
X11Forwarding yes
# 日志级别
LogLevel INFO解释
Port:指定 SSH 服务监听的端口号。ListenAddress:设置 SSH 服务监听的地址。AllowUsers:指定允许登录的用户列表。PasswordAuthentication:是否允许密码认证。PubkeyAuthentication:是否允许公钥认证。X11Forwarding:是否启用 X11 转发。LogLevel:设置日志级别。
启动和管理 SSH 服务
启动 SSH 服务:
sudo systemctl start ssh设置开机自启动:
sudo systemctl enable ssh检查 SSH 服务状态:
sudo systemctl status ssh使用 SSH
连接到远程服务器
使用 SSH 连接到远程服务器:
ssh username@hostname使用 SSH 密钥认证
生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"将公钥复制到远程服务器:
ssh-copy-id username@hostname转发端口
将本地端口转发到远程端口:
ssh -L local_port:localhost:remote_port username@hostnameX11 转发
启用 X11 转发,以便在远程服务器上运行图形应用程序:
ssh -X username@hostname常见参数
-p:指定连接端口。-i:指定私钥文件。-L:本地端口转发。-R:远程端口转发。-X:启用 X11 转发。
示例案例
示例 1:使用默认端口连接到远程服务器
ssh user@192.168.1.100示例 2:使用指定端口连接到远程服务器
ssh -p 2222 user@192.168.1.100示例 3:使用密钥文件连接到远程服务器
ssh -i ~/.ssh/id_rsa user@192.168.1.100示例 4:将本地端口 8080 转发到远程服务器的 80 端口
ssh -L 8080:localhost:80 user@192.168.1.100示例 5:启用 X11 转发
ssh -X user@192.168.1.100参考链接
Samba 服务指南
Samba 是一个用于在 Linux 系统和 Windows 系统之间实现文件和打印共享的免费软件。它实现了 SMB/CIFS 协议,使得 Linux 系统能够像 Windows 系统一样进行文件共享和打印共享。
注
Samba 是实现跨平台文件共享的最流行解决方案,尤其适用于混合使用 Windows 和 Linux 系统的网络环境。
安装 Samba
在大多数 Linux 发行版中,您可以使用包管理器来安装 Samba:
在 Debian/Ubuntu 上安装
sudo apt update
sudo apt install samba在 CentOS/RHEL 上安装
sudo yum install samba配置 Samba
Samba 的主要配置文件是 /etc/samba/smb.conf。在配置文件中,您可以定义共享目录、用户权限等。
示例配置文件
以下是一个简单的 Samba 配置文件示例:
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no
[Anonymous]
path = /srv/samba/anonymous
browsable = yes
writable = yes
guest ok = yes
read only = no
[Private]
path = /srv/samba/private
valid users = @smbgroup
guest ok = no
writable = yes
browsable = yes解释
[global]部分包含全局设置,如工作组名称、NetBIOS 名称和安全选项。[Anonymous]部分定义了一个匿名共享,任何人都可以访问和写入。[Private]部分定义了一个私有共享,仅smbgroup组的用户可以访问。
创建共享目录
创建共享目录并设置权限:
sudo mkdir -p /srv/samba/anonymous
sudo mkdir -p /srv/samba/private
sudo chown -R nobody:nogroup /srv/samba/anonymous
sudo chown -R root:smbgroup /srv/samba/private
sudo chmod -R 0775 /srv/samba/private管理 Samba 用户
添加 Samba 用户:
sudo smbpasswd -a username添加 Samba 组:
sudo groupadd smbgroup
sudo usermod -aG smbgroup username启动和管理 Samba 服务
启动 Samba 服务:
sudo systemctl start smbd
sudo systemctl start nmbd设置开机自启动:
sudo systemctl enable smbd
sudo systemctl enable nmbd测试和访问共享
从 Linux 客户端访问
您可以使用 smbclient 工具来访问 Samba 共享:
smbclient //hostname/Anonymous从 Windows 客户端访问
您可以在 Windows 资源管理器中输入 \\hostname\Anonymous 来访问共享。
常见参数
workgroup:指定工作组名称。server string:设置服务器描述。netbios name:设置 NetBIOS 名称。security:定义安全模式,如user、share。path:定义共享目录的路径。browsable:指定共享是否可浏览。writable:指定共享是否可写。guest ok:允许匿名访问。
示例案例
共享公共文件夹
创建一个公共文件夹,允许所有用户读写:
[Public]
path = /srv/samba/public
browsable = yes
writable = yes
guest ok = yes
read only = no共享私有文件夹
创建一个私有文件夹,仅允许特定用户访问:
[Private]
path = /srv/samba/private
valid users = user1 user2
guest ok = no
writable = yes
browsable = yes