如何在Ubuntu中打开特定端口?

我的 SoulSeek 客户端 Nicotine+ 在初始配置期间检查我的开放端口,并提示说它需要的一个端口号是关闭的,使我无法与大约 50% 的用户连接。有没有办法打开那个特定的端口供应用程序使用?

运行 Ubuntu Desktop 13.04。我没有手动安装任何防火墙,但不确定它是否包含在默认安装中。


你是在使用Ubuntu桌面版还是服务器版?你有安装任何防火墙吗? - Mitch
桌面电脑(Trusty)未安装额外的防火墙。 - charlie
2个回答

在命令行上运行此命令,它应该解决问题:sudo iptables -A INPUT -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT 要针对特定端口执行操作: sudo iptables -A INPUT -p <tcp OR udp> <--dport OR --sport> <port> -j ACCEPT INPUT 是用于传入流量的链。 -p 是协议(可以是 tcpudp)。 --dport--sport 指定允许目标或源端口。 -j 是 "jump",用于接受(ACCEPT)、拒绝(REJECT)或丢弃(DROP)数据包。
有关 iptables 的详细信息,请阅读 man 手册。作为初学者,你可能会发现这个链接很有用:http://www.netfilter.org/documentation/HOWTO//packet-filtering-HOWTO.html

1@J Moore: 谢谢,但是我在哪里输入端口号?还有如果您能简单解释一下这些参数的用途会更好。 - charlie
1我尝试了上述方法,虽然我认为它们应该有效,但客户端端口检查页面:http://tools.slsknet.org/porttest.php?port=2234 总是显示端口关闭。有什么想法吗? - charlie

你需要安装至少一个防火墙,因为在Ubuntu的默认安装中没有安装防火墙。
32位系统:
- Firestarter
64位系统:
- Firestarter
  • 安装并打开Firestarter,添加入站策略,使用以下IP地址:0.0.0.0/0(允许所有IP地址)
  • 添加需要打开的端口。
  • 然后点击应用更改按钮。

我觉得这根本没有解决问题。而且很明显,楼主对你刚提出的方法一点都不了解如何执行。 - sinekonata