|
|
@@ -1,6 +1,6 @@
|
|
|
-# FTP Server for Windows
|
|
|
+# FTP Server
|
|
|
|
|
|
-基于 Go 语言开发的轻量级 FTP 服务器,带 Web 管理面板,专为 Windows 环境设计。
|
|
|
+基于 Go 语言开发的轻量级 FTP 服务器,带 Web 管理面板,**跨平台支持 Windows / Linux / macOS**。
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
@@ -25,11 +25,23 @@
|
|
|
确保已安装 Go 1.21+,然后执行:
|
|
|
|
|
|
```bash
|
|
|
-go build -o ftp-server.exe ./cmd/
|
|
|
+# 编译为当前平台
|
|
|
+go build -o ftp-server ./cmd/
|
|
|
+
|
|
|
+# 交叉编译 - Windows (64位)
|
|
|
+GOOS=windows GOARCH=amd64 go build -o ftp-server.exe ./cmd/
|
|
|
+
|
|
|
+# 交叉编译 - Linux (64位)
|
|
|
+GOOS=linux GOARCH=amd64 go build -o ftp-server ./cmd/
|
|
|
+
|
|
|
+# 交叉编译 - macOS
|
|
|
+GOOS=darwin GOARCH=amd64 go build -o ftp-server ./cmd/
|
|
|
```
|
|
|
|
|
|
### 运行
|
|
|
|
|
|
+**Windows:**
|
|
|
+
|
|
|
```bash
|
|
|
# 使用默认配置启动
|
|
|
.\ftp-server.exe
|
|
|
@@ -38,6 +50,19 @@ go build -o ftp-server.exe ./cmd/
|
|
|
.\ftp-server.exe -config myconfig.json
|
|
|
```
|
|
|
|
|
|
+**Linux / macOS:**
|
|
|
+
|
|
|
+```bash
|
|
|
+# 使用默认配置启动
|
|
|
+./ftp-server
|
|
|
+
|
|
|
+# 指定配置文件
|
|
|
+./ftp-server -config myconfig.json
|
|
|
+
|
|
|
+# 后台运行
|
|
|
+nohup ./ftp-server > ftp-server.log 2>&1 &
|
|
|
+```
|
|
|
+
|
|
|
首次运行会自动生成 `config.json` 配置文件和 `ftp_root` 根目录。
|
|
|
|
|
|
### 访问
|
|
|
@@ -56,6 +81,48 @@ go build -o ftp-server.exe ./cmd/
|
|
|
|
|
|
> 请在首次登录后立即修改默认密码。
|
|
|
|
|
|
+## Linux Systemd 服务(可选)
|
|
|
+
|
|
|
+在 Linux 上可以配置为 systemd 服务,实现开机自启:
|
|
|
+
|
|
|
+```bash
|
|
|
+# 创建服务文件
|
|
|
+sudo nano /etc/systemd/system/ftp-server.service
|
|
|
+```
|
|
|
+
|
|
|
+写入以下内容(按实际路径修改):
|
|
|
+
|
|
|
+```ini
|
|
|
+[Unit]
|
|
|
+Description=FTP Server
|
|
|
+After=network.target
|
|
|
+
|
|
|
+[Service]
|
|
|
+Type=simple
|
|
|
+User=root
|
|
|
+WorkingDirectory=/opt/ftp-server
|
|
|
+ExecStart=/opt/ftp-server/ftp-server -config /opt/ftp-server/config.json
|
|
|
+Restart=on-failure
|
|
|
+RestartSec=5
|
|
|
+
|
|
|
+[Install]
|
|
|
+WantedBy=multi-user.target
|
|
|
+```
|
|
|
+
|
|
|
+启动并设置开机自启:
|
|
|
+
|
|
|
+```bash
|
|
|
+sudo systemctl daemon-reload
|
|
|
+sudo systemctl start ftp-server
|
|
|
+sudo systemctl enable ftp-server
|
|
|
+
|
|
|
+# 查看状态
|
|
|
+sudo systemctl status ftp-server
|
|
|
+
|
|
|
+# 查看日志
|
|
|
+sudo journalctl -u ftp-server -f
|
|
|
+```
|
|
|
+
|
|
|
## 配置说明
|
|
|
|
|
|
配置文件为 `config.json`,结构如下:
|
|
|
@@ -103,7 +170,7 @@ go build -o ftp-server.exe ./cmd/
|
|
|
|
|
|
## FTP 客户端连接
|
|
|
|
|
|
-推荐使用 [FileZilla](https://filezilla-project.org/) 或 Windows 资源管理器连接:
|
|
|
+推荐使用 [FileZilla](https://filezilla-project.org/) 连接:
|
|
|
|
|
|
```
|
|
|
主机: localhost
|
|
|
@@ -127,7 +194,7 @@ FTP-server/
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
-- **Go** — 无需运行时依赖,单文件部署
|
|
|
+- **Go** — 无需运行时依赖,单文件部署,跨平台支持
|
|
|
- **标准库 net/http** — Web 管理面板
|
|
|
- **标准库 net** — FTP 协议实现
|
|
|
- **内嵌 HTML/CSS/JS** — 无需额外前端文件
|