goploader 1.0.2 常用 CLI 命令与工具详解
梳理 goploader 1.0.2 服务端、客户端与 curl 三个命令行入口的全部参数与真实回显,含一次性链接、进度条、剪贴板实测。
goploader 1.0.2 常用 CLI 命令与工具详解
目标:系统梳理 goploader 1.0.2 的三个命令行入口——服务端
goploader-server、官方客户端gpldr与 curl 直连 HTTP API,逐参数给出真实回显与注意事项。本文所有命令与回显均在 Ubuntu 24.04 LTS(x86_64)上实测通过(服务端与客户端均为 1.0.2 官方 Release 二进制,2026-10-30)。
一、环境信息
- 操作系统:Ubuntu 24.04.5 LTS(x86_64)
- 软件版本:goploader 1.0.2(服务端
goploader-server、客户端gpldr,官方 Release Linux x86_64 包) - 服务端实例:192.168.146.128:8152(
name_server: 192.168.146.128:8152,下同) - 客户端配置文件:
~/.config/goploader.conf.yml - 服务端工作目录:
/opt/goploader/(内含conf.yml、goploader-server) - 校验基准:下载包 sha256 与官方
goploader_1.0.2_checksums.txt比对通过
二、工具概览
goploader 的日常操作围绕三个入口展开:
| 工具 | 角色 | 典型用途 |
|---|---|---|
goploader-server | 服务端进程 | 启动文件分享服务、指定配置、跑初始向导 |
gpldr | 官方客户端 | 上传文件/命令输出/截图,支持进度条、一次性链接、剪贴板等 |
curl | 通用 HTTP 客户端 | 无客户端环境下直连服务端上传下载 |
三者共享同一套服务端协议(multipart/form-data 上传、/v/... 下载),选择建议:日常交互选 gpldr(体验最好),脚本与无客户端环境选 curl,服务端管理只有 goploader-server。
三、前置条件
- 服务端已部署并运行(本文实例监听 192.168.146.128:8152);
- 客户端二进制已就位:从官方 Releases 下载
goploader_client_Linux_x86_64.tar.gz解压出gpldr,与官方 checksums 校验通过(实测回显goploader_client_Linux_x86_64.tar.gz: OK); curl已安装(Ubuntu 24.04 默认自带)。
四、各工具详解
4.1 服务端 goploader-server
服务端只有两个参数。查看帮助:
./goploader-server --help
实测回显:
Usage of ./goploader-server:
-c, --conf="conf.yml": Local path to configuration file.
-i, --initial=false: Run the initial setup of the server.
-c/--conf:指定配置文件路径。 默认读取当前目录下的 conf.yml,配置文件放在别处时显式指定:
./goploader-server -c /etc/goploader/conf.yml
实测回显(正常启动,日志节选):
INFO | server | 2026/10/30 - 16:41:45 | | Started goploader server on port : 8153
-i/--initial:运行初始配置向导。 首次部署不想手写 conf.yml 时使用:
./goploader-server -i
实测回显:
Please go to http://127.0.0.1:8080 to setup goploader.
浏览器打开该地址填表提交即可在当前目录生成 conf.yml(实测页面 HTTP 200,标题 Goploader)。
⚠️ 注意:官方文档写向导端口为 8008,1.0.2 实测监听 8080;向导是一次性工具,生成配置后请用常规方式(不带
-i)启动服务。
4.2 客户端 gpldr:帮助与首次运行
查看客户端全部参数:
gpldr --help
实测回显(完整):
Usage of ./bin/gpldr:
-c, --clipboard=false: Copy the returned URL directly to the clipboard (needs xclip or xsel)
-d, --delay=0s: Define a delay before the program executes (including taking the screenshot)
--hostname="": Specify the server you want to send your file to
-l, --lifetime="1d": Specify the lifetime of your file (30m, 1h, 6h, 1d, 1w)
-n, --name="": Specify the filename you want
-o, --once=false: Your upload will be visible only once and then deleted from the server
-p, --progress=false: Displays a progress bar
-s, --screenshot=false: Screenshot and uploads your current screen (Need the `import` command)
-t, --tee=false: Displays stdin to stdout
-v, --verbose=false: Activates the debug mode
-w, --window=false: Click on the window you want to screenshot (only works with -s/--screenshot option)
首次运行会自动生成配置文件。客户端启动时读取 ~/.config/goploader.conf.yml,不存在则写入默认配置(实测回显,首次运行仅出现一次这两行日志):
2026/10/30 16:33:46 Creating /root/.config/ directory.
2026/10/30 16:33:46 Configuration file /root/.config/goploader.conf.yml not found. Writing default configuration.
默认内容(实测):
service: http://127.0.0.1:8080
token: ""
使用自己的服务器时把 service 改为服务端地址;服务端设了 token 时填入 token 键:
service: http://192.168.146.128:8152
token: ""
4.3 基本上传:文件与标准输入
指定文件上传(省略 --hostname 时使用 conf 的 service,本节起均已把 service 配置为 http://192.168.146.128:8152):
gpldr sample.txt
实测回显:
http://192.168.146.128:8152/v/rm86DQR3wz/WETrvuCa21OSTE6g
不指定文件时从标准输入读取(文件名默认记为 stdin),可把命令输出直接变成分享链接:
echo "piped from stdin" | gpldr -t
实测回显(-t 先回显流入的内容,再输出链接):
piped from stdin
http://192.168.146.128:8152/v/KFAOStJL17/wwGOOtIbWYR5U51C
4.4 --hostname:直连指定服务器
临时向另一台 goploader 服务器上传而无需改配置文件:
gpldr --hostname=http://192.168.146.128:8152 sample.txt
实测回显:
http://192.168.146.128:8152/v/b8A3y33D3x/7RrGFwyGGdr1DqcV
⚠️ 注意:必须使用
--hostname=<地址>的等号写法。空格写法在该版本客户端上会直接报错退出(实测回显):flag needs an argument: --hostname Usage of ./bin/gpldr:随后打印完整用法列表并以非零码退出。
4.5 -l/--lifetime:有效期档位
设定文件在服务端的存留时长,可选 30m / 1h / 6h / 1d / 1w,默认 1d:
gpldr -l 30m sample.txt
实测回显:
http://192.168.146.128:8152/v/HabkaG5RCm/I0j14ciionyYfB7b
超出五档之外的值(如 2h)服务端会拒绝上传并返回 400 Invalid duration。
4.6 -o/--once:一次性链接
上传仅可下载一次的文件,首次下载后服务端立即删除:
gpldr -o sample.txt
实测回显:
http://192.168.146.128:8152/v/A3xqISQ0LH/5WVl1CR0EwmbBJxA
下载验证(首次 200 拿到内容,第二次 404):
curl http://192.168.146.128:8152/v/A3xqISQ0LH/5WVl1CR0EwmbBJxA
hello goploader 1.0.2 on ubuntu 22.04
curl -s -o /dev/null -w "%{http_code}" http://192.168.146.128:8152/v/A3xqISQ0LH/5WVl1CR0EwmbBJxA
404
4.7 -n/--name:指定下载文件名
覆盖默认文件名(默认取本地文件名,stdin 上传默认为 stdin)。上传一个改名文件并核对响应头:
gpldr -n renamed-file.txt sample.txt
实测回显:
http://192.168.146.128:8152/v/sX6LVe0byO/zUwBeb9oxx0imydR
curl -I http://192.168.146.128:8152/v/sX6LVe0byO/zUwBeb9oxx0imydR | grep -i disposition
Content-Disposition: filename="renamed-file.txt"
4.8 -p/--progress:上传进度条
大文件上传时显示百分比、速率与已上传量:
gpldr -p big.bin
实测回显(6 MB 文件,本机内网上传近乎瞬时):
0 B / 6.00 MiB 0.00% 6.00 MiB / 6.00 MiB 100.00% 529.28 MiB/s 6.00 MiB / 6.00 MiB 100.00% 278.39 MiB/s 6.00 MiB / 6.00 MiB 100.00% 188.28 MiB/shttp://192.168.146.128:8152/v/dN649c0ILu/4bCmDQL7SlWGneBv
💡 说明:数据源为 stdin 时总大小未知,进度条按官方文档说明只显示上传速度,不显示百分比。
4.9 -v/--verbose:调试输出
gpldr -v sample.txt
实测回显:
Debug mode is activated
Main datasource is sample.txt
Initialization pipe
Executing multipart post
Started the goroutine to pipe data
Multipart post is done, reading data
http://192.168.146.128:8152/v/xvfbbKIKk7/dxDcvWGpLqwc2jjJ
排障时先加 -v,可看到数据源判定与 multipart 提交的完整过程。
4.10 -d/--delay:延迟执行
按 10s/2m 等格式延迟启动(配合截图使用最多)。用 time 验证实际等待:
time gpldr -d 2s sample.txt
实测回显:
http://192.168.146.128:8152/v/lc8m3ywFKs/06ClSTRvYM9QYC1A
real 0m2.006s
user 0m0.000s
sys 0m0.004s
4.11 -c/--clipboard:结果链接进剪贴板
需要桌面环境的剪贴板工具(xclip/xsel/wl-clipboard)。在无剪贴板工具的终端会话实测:
gpldr -c sample.txt
实测回显(报错但仍输出链接,退出码 1):
Unable to copy to clipboard: No clipboard utilities available. Please install xsel, xclip, wl-clipboard or Termux:API add-on for termux-clipboard-get/set.
http://192.168.146.128:8152/v/ya6t2oNpeR/qJpnv53RzTIzdCqD
成功时输出 Copied URL to clipboard 并不回显链接。桌面环境安装 xclip(X11)或 wl-clipboard(Wayland)后即可正常使用。
4.12 -s/--screenshot 与 -w/--window:截图上传
-s 截取当前屏幕并直接上传,-w 允许先框选窗口/区域(需与 -s 连用)。官方文档说明该功能依赖以下至少一个工具:gnome-screenshot、import(ImageMagick)或 scrot;未安装时该选项不可用。无桌面环境的服务器上无法使用,本文环境未展开实测。
官方还支持布尔短参数连写,如「延迟 5 秒截屏上传并复制链接」可写作:
gpldr -pscd 5s
(-p、-s、-c 为布尔参数可连写,-d 需要取值写在末尾。)
4.13 curl 直连上传下载
无客户端环境用 curl 同样完成全部操作。普通上传:
curl -F file=@sample.txt http://192.168.146.128:8152/
实测回显:
http://192.168.146.128:8152/v/IaPqlhsHBI/tREEeMWBSnEKbxAf
一次性上传(once 字段非空即生效):
curl -F once=1 -F file=@once.txt http://192.168.146.128:8152/
实测回显:
http://192.168.146.128:8152/v/Z3iFKaJy7m/BdlpK1gDdDC0KMm0
带有效期上传:
curl -F duration=30m -F file=@sample.txt http://192.168.146.128:8152/
实测回显:
http://192.168.146.128:8152/v/tm0eETt7KB/l8kcNV3rVWjbx1Dl
下载与查头:
curl http://192.168.146.128:8152/v/IaPqlhsHBI/tREEeMWBSnEKbxAf
curl -I http://192.168.146.128:8152/v/IaPqlhsHBI/tREEeMWBSnEKbxAf
实测回显(内容 + 响应头):
hello goploader 1.0.2 on ubuntu 22.04
HTTP/1.1 200 OK
Content-Disposition: filename="sample.txt"
Date: Fri, 30 Oct 2026 08:31:31 GMT
Content-Length: 38
Content-Type: text/plain; charset=utf-8
服务端开启 token 后,curl 上传需追加 -F token=<口令>,缺失或错误返回 401 Incorrect token;超过服务端 size_limit 返回 413 Entity is too large (Max : 20 MB)(实测均为逐字回显)。
用 curl 访问首页还能拿到终端教程(服务端识别 curl UA 后输出):
curl http://192.168.146.128:8152/
实测回显:
_ _
| | | |
____ ____ | | _ | | ____
/ _ || _ \ | | / || | / ___)
( ( | || | | || |( (_| || |
\_|| || ||_/ |_| \____||_|
(_____||_|
Because file sharing is meant to be easy
~ Server-side encrypted file sharing ~
Usage
Upload from stdin
$ tree | curl -F file=@- http://192.168.146.128:8152
Simple file upload
$ curl -F file=@myfile.txt http://192.168.146.128:8152
五、注意事项
--hostname只支持等号写法:--hostname http://...(空格形式)在 1.0.2 客户端实测报flag needs an argument并退出,务必写--hostname=http://...;- 一次性链接不可恢复:
-o上传的文件在首次下载后即从服务端删除,链接误发或下载失败都无法重试,重要内容请保留本地原件; - 有效期只有五档:30m/1h/6h/1d/1w,客户端
-l与 curl-F duration=共用同一白名单,其他值一律400; - 客户端配置只有
service与token两个键:其余行为全部走命令行参数;配置文件在~/.config/goploader.conf.yml,首次运行自动生成; - 上传响应即短链接,链接包含解密密钥:
/v/<资源ID>/<密钥>中的密钥段只在响应里出现一次,请妥善保管完整链接; - 布尔短参数可连写(如
-ps),带值的参数(-d/-l/-n/--hostname)需紧跟取值; - 客户端无
--version参数:确认版本请比对下载包与官方 checksums。
六、常见问题
Q1:客户端报 open ../../sample.txt: no such file or directory 后退出?
上传目标文件路径不存在(实测回显 2026/10/30 16:51:58 open ../../sample.txt: no such file or directory,退出码 1)。检查相对路径基准是当前工作目录,或改用绝对路径。
Q2:报 Unable to copy to clipboard: ...?
-c 需要系统剪贴板工具。安装 xclip(X11)、wl-clipboard(Wayland)后重试;报错时链接仍会打印在终端,不会丢失上传结果(见 4.11 实测)。
Q3:上传返回 401 Incorrect token?
服务端设置了 token。客户端在 ~/.config/goploader.conf.yml 的 token 键填入同一口令;curl 加 -F token=<口令>。
Q4:上传返回 413 Entity is too large (Max : 20 MB)?
文件超过服务端 size_limit(默认 20 MB),需服务端调参,客户端无法绕过。
Q5:下载返回 404?
三种可能:once 文件已被首次下载删除;文件超过有效期被服务端清理;URL 的资源 ID 或密钥段拼写错误。密钥段错误同样表现为 404(资源存在但无法构造解密器的场景会由服务端拦截)。
Q6:截图选项在服务器上报错?
-s/-w 依赖桌面截图工具(gnome-screenshot/import/scrot 至少其一)与图形会话,无桌面服务器上不可用,官方文档亦注明 Mac/Windows 平台的截图功能未经测试。
七、参考链接
- 客户端官方文档(参数表与示例):https://depado.github.io/goploader/client/documentation.html
- curl 用法官方说明:https://depado.github.io/goploader/curl.html
- goploader Releases(客户端/服务端下载与 checksums):https://github.com/Depado/goploader/releases
- 实测基准:goploader 1.0.2,Ubuntu 24.04 LTS x86_64,2026-10-30