【问题标题】:java.net.BindException: Cannot assign requested addressjava.net.BindException:无法分配请求的地址
【发布时间】:2015-06-03 05:29:22
【问题描述】:

我想在我的应用程序中使用低端口(Spring web + Tomcat7 上的 SNMP 陷阱接收器)。正如我在此线程Binding Low Port to Java Program on Ubuntu Server 中所说,之前,我收到错误权限被拒绝。然后我将tomcat7用户组更改为root。但在那之后,我得到了 java.net.BindException: Cannot assign requested address 错误。对于我尝试的每个端口(低端口或高端口),我总是收到此错误。

我检查端口是否已使用,我看到端口仍然空闲。 我检查了我的 /etc/host 内容,是这样的:

127.0.0.1 localhost 
127.0.1.1 test-server 
# The following lines are desirable for IPv6 capable hosts 
::1 localhost ip6-localhost ip6-loopback 
ff02::1 ip6-allnodes 
ff02::2 ip6-allrouters 
124.81.xx.x test-server.com

注意:我的操作系统是 ubuntu 服务器

【问题讨论】:

  • 你绑定的是什么{address:port}? address 是 localhost 的本地 IP 地址吗?
  • 是的,本地主机的ip地址(124.81.xx.xx:162)
  • 但它是主机的本地 IP 地址,还是通过路由器/防火墙和端口转发的公共地址?不能绑定后者,只能绑定前者。
  • 哦,ip地址是公网ip。我的服务器只有一个 ip,而当我尝试在 localhost ip (127.0.0.1:162) 上绑定/侦听时,陷阱无法捕获。我该如何解决这个问题。仅供参考,我不是网络管理员

标签: java tomcat7 ubuntu-12.04 snmp


【解决方案1】:

您应该绑定到0.0.0.0,而不是尝试指定本地地址。

【讨论】:

  • 监听器在 0.0.0.0:162,但是当我尝试将陷阱发送到真实 ip(公共 ip->124.81.xx.xx)时,陷阱没有被捕获
  • 对不起,今天我再试一次,效果很好。我不知道为什么昨天它不起作用,也许我错过了一些东西。谢谢你的回答。
  • 您不能绑定到任何不是 localhost 的本地 IP 地址的地址。例如,您不能绑定到外部路由器提供的外部地址。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2020-09-09
  • 2016-06-23
相关资源
最近更新 更多