我已经研究这个问题好几天了,这可能是我忽略的一些非常简单的事情,但我似乎无法让它发挥作用。
因此,任何帮助都将不胜感激!
以下是一些详细信息:
1)我开发了一个 REST Web 服务应用程序,该应用程序使用 Glassfish 5.0 部署在我的 Ubuntu PC 上。
域的服务器配置“网络侦听器”的“http-listener”地址设置为 0.0.0.0,端口号设置为所需的 [port-number]
2)我使用静态 [lan-ip-address](例如 192.xxx.o.xxx)配置了 ISP 路由器端口转发功能,将起始端口和结束端口设置为所需的 [port-number],并将协议设置为 TCP
3)使用https://www.yougetsignal.com/what-is-my-ip-address/我得到的 [wan-ip-address] 与 ISP 路由器状态页面上的 [wan-ip-address] 完全相同。
4)使用https://www.yougetsignal.com/tools/open-ports/输入 [wan-ip-address] 和 [port-number] 我得到
"Port [port-number] is open on [wan-ip-address]."
哪个是对的。
5)在我的 Ubuntu 16.04 LTS PC 上执行以下操作:
nmcli dev show | grep DNS
显示 ISP 路由器 DNS 服务器和备用 DNS 服务器 IP
例如 IP4.DNS[1]: [路由器 DNS 服务器 IP 地址]
6)在 Ubuntu 电脑上:
/etc/hosts 包含:
127.0.0.1 localhost
[lan-ip-address] MyUbuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
/etc/hostname 包含:
MyUbuntu
/etc/network/interfaces 包含:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address [lan-ip-address]
netmask 255.255.255.0
gateway [router-gateway-ip]
dns-nameservers [router-gateway-ip]
/etc/resolve.conf 列出了 ISP 路由器名称服务器的 IP
并且 /etc/NetworkManager/NetworkManager.conf 有
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
[ifupdown]
managed=true
7)执行“wget [lan-ip-address]:[port-number]”有效并返回:
--2018-09-12 16:05:38-- http://192.168.0.107:10080/
Connecting to 192.168.0.107:10080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6430 (6.3K) [text/html]
Saving to: ‘index.html’
index.html 100% 6.28K --.-KB/s in 0s
8)使用 Postman 或浏览器发送 GET 请求,如下所示(在我的本地网络上):
http://[lan-ip-address]:[port-number]/myapp/myresource
我拿回了我的 JSON。
但使用 WAN IP 的操作无效:
http://[wan-ip-address]:[port-number]/myapp/myresource
任何帮助将不胜感激!
谢谢!!