在 Ubuntu 26.04 里想在局域网内把文件共享给 Windows、手机、另一台 Linux,其实方法很多。我这里不搞复杂排版,就按实际好用程度总结几种,最后重点写一个用 Go 编译的轻量 Web 文件服务,比临时命令更稳定、适合长期用。
局域网分享文件常用几种方式(简单说)
1. Samba 共享(最通用,Windows 直接访问)
适合固定目录长期共享,Windows 网上邻居、手机文件管理器都能访问。
sudo apt update
sudo apt install samba -y
新建共享用户:
sudo smbpasswd -a 你的用户名
编辑配置:
sudo vim /etc/samba/smb.conf
在末尾加一段:
[share]
path = /home/你/共享目录
browseable = yes
read only = no
guest ok = no
重启服务:
sudo systemctl restart smbd
其他机器访问:
\\Ubuntu的IP\share
2. Python 一键临时共享(最快,用完即关)
不想装任何东西,当前目录直接开网页下载:
# Python 3
python3 -m http.server 8080
其他设备浏览器打开:
http://UbuntuIP:8080
缺点:关终端就失效,没有权限控制。
3. scp /rsync(命令行传输,适合懂点命令的人)
直接传文件到另一台Linux机器:
scp 文件名 用户名@目标IP:/保存路径
适合点对点传,不适合多人下载。
核心:用 Go 写一个稳定的局域网文件下载服务
Python 那个临时服务虽然方便,但经常断、不能后台、也不太正式。
用 Go 写一个超简单的 Web 文件服务,编译一次到处运行,后台挂着稳定可靠,非常适合 Ubuntu 26.04 长期用。
1. 先安装 Go(如果没装)
sudo apt update
sudo apt install golang-go -y
2. 新建 go 代码:fileserver.go
直接复制下面内容即可,逻辑就是把某个目录暴露成网页下载。
package main
import (
"log"
"net/http"
"path/filepath"
)
func main() {
// 要共享的目录
shareDir := "./files"
// 自动创建目录
err := filepath.Walk(shareDir, func(path string, fInfo interface{}, err error) error {
return err
})
if err != nil {
_ = http.FileServer(http.Dir(shareDir))
}
http.Handle("/", http.FileServer(http.Dir(shareDir)))
log.Println("文件服务已启动")
log.Println("访问地址:http://0.0.0.0:8899")
log.Println("把文件放进 " + shareDir + " 目录即可下载")
log.Fatal(http.ListenAndServe(":8899", nil))
}
3. 创建共享目录
mkdir files
4. 运行
go run fileserver.go
5. 编译成可执行文件(推荐)
以后不用装 Go 也能跑,双击 / 后台启动都行:
go build -o fileserver fileserver.go
运行:(打包后的文件可以在Windows,Linux或者Macos系统中都可以使用)
./fileserver
6. 局域网其他设备访问
任意设备浏览器打开:
http://你Ubuntu的IP:8899
就能看到文件列表,点一下直接下载,速度跑满局域网,非常爽。
7. 后台常驻(服务器模式)
让它一直运行,关闭终端不退出:
nohup ./fileserver &
关闭服务:
pkill fileserver
简单总结
- 要给 Windows 用:选 Samba
- 临时传一下:Python http.server
- 稳定、干净、跨设备、长期用:Go 文件服务最强,不依赖环境、不占资源、浏览器就能下。