在Ubuntu系统上运行Go语言应用时,推荐使用ufw配置防火墙。首先安装并启用ufw,之后通过sudoufwallow8080放行端口,可以连续放行并限定TCP协议,支持来源IP限制等多种自定义规则。对于生产环境,推荐使用iptables或云平台ACL;单机部署ufw高效且稳定,值得采用。
在 Ubuntu 上运行 Golang 应用时,防火墙配置是绕不开的关键环节。许多新手一上来就尝试 iptables,却常被复杂的规则困扰。其实,使用 ufw(Uncomplicated Firewall)就能优雅地解决——既然名字叫“不复杂的防火墙”,何不充分利用?

长期稳定更新的攒劲资源: >>>点此立即查看<<<
如果系统中尚未安装 ufw,执行一行命令即可:
sudo apt update
sudo apt install ufw
安装完成后,记得启用:
sudo ufw enable
启用后,默认情况下所有入站连接都会被拒绝,除非明确放行。这遵循最小权限原则,确保安全性。
假设你的 Go 服务监听在 8080 端口,放行方式如下:
sudo ufw allow 8080
如果应用需要连续端口范围,比如 8000 到 8100,也只需一条命令:
sudo ufw allow 8000:8100/tcp
建议加上协议限定 /tcp,避免意外放行 UDP 流量。具体可根据应用需求调整。
想了解当前放行了哪些端口?运行:
sudo ufw status
输出结果会清晰列出所有规则,包含协议、端口、来源等信息。修改规则后养成检查的习惯,能确保配置正确。
在调试或临时环境中,可能需要完全禁用 ufw:
sudo ufw disable
生产环境中不建议这样做。如有必要,可临时放行特定来源 IP,而不是全局关闭。
有时单纯放行端口不够用——例如你想只允许特定内网 IP 访问 Golang 服务,或限制协议类型。此时可编辑 /etc/ufw/before.rules 文件,或直接使用更精细的 ufw 命令:
sudo ufw allow from 192.168.1.100 to any port 8080
这样只有那台设备能连接 8080 端口,其他设备即使知道端口也无法访问。
防火墙配置中最忌讳“一刀切”——要么全开要么全关。关键在于明确你的 Golang 应用需要哪些入站端口,以及是否要主动访问外部服务。默认情况下,ufw 允许所有出站流量,因此如果你的服务需要调用第三方 API 或数据库,通常无需额外配置出站规则。但如果公司有安全策略要求出站白名单,则需查阅文档,在 /etc/ufw/before.rules 中添加出站限制。
最后提醒一句:在生产环境中,ufw 虽然便捷,但大型集群或云原生场景下,更推荐使用 iptables、nftables 或云平台自带的网络 ACL。对于单机部署的 Golang 应用,ufw 无疑是快速且稳定的选择。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述