我将linux设置为访问点,然后运行简单的Web服务器,在端口3000上打印“hello world”。
并成功将其与智能手机连接。
在linux终端中,http://localhost:3000
运行良好。
但在智能手机中,
如果我访问http://172.24.1.105:3000
,则无法连接到它。 (172.24 ......是ap的ip)
chrome的错误消息是
无法访问此网站。 172.24.1.105拒绝连接
我搜索了Google(https://serverfault.com/questions/725262/what-causes-the-connection-refused-message),我怀疑是linux的防火墙。
pi@raspberrypi:~/prj/ap_server $ sudo tcpdump -n icmp
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
... when I access to port 3000,
15:07:13.102750 IP 192.168.0.3 > 168.126.63.2: ICMP 192.168.0.3 udp port 42531 unreachable, length 386
日志在上面。所以我无法访问ap的网络服务器。
所以我想知道两件事......
1。如何禁用其端口块?
2。在tcpdump日志中,我实际上访问了端口3000,为什么日志打印端口为42531?
加)
即使我输入sudo service iptables stop
,问题仍未解决
sudo netstat -ntlp | grep 3000
日志:
**tcp6 0 0 :::3000 :::* LISTEN 1999/nodejs**
+我按照本教程 - > https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/。
并且有ipv4设置。
答案 0 :(得分:0)
如果您想在移动设备上运行它,它将适用于Live IP(外部网)地址
如果它在本地地址(localhost)上正常工作,而不是在实时IP上工作 启用路由器路由
并允许该特定端口正常工作。
答案 1 :(得分:0)
我发现了这个问题。
我的dhcp设置是
if let cleanURLString = urlString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed),
let theURL: Foundation.URL = Foundation.URL(string: cleanURLString) {
var task:URLSessionDataTask?
let urlconfig = URLSessionConfiguration.default
urlconfig.timeoutIntervalForRequest = 20
urlconfig.timeoutIntervalForResource = 60
let session = Foundation.URLSession(configuration: urlconfig, delegate: self, delegateQueue: OperationQueue.main)
let request = URLRequest(url: theURL)
request.httpMethod = "POST"
request.cachePolicy = URLRequest.CachePolicy.reloadIgnoringCacheData
request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")
let paramString = YourParameterString
request.httpBody = paramString.data(using: String.Encoding.utf8)
task = session.dataTask(with: request) {
(data, response, error) in
// Do here
})
dataTask.resume()
}
像上面一样。
我尝试连接外接ip(interface=wlan0 # Use interface wlan0
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8 # Forward DNS requests to Google DNS
domain-needed # Don't forward short names
bogus-priv # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time
),我可以在移动设备上连续看到但失败了。但是当我尝试172.24.1.105
时,那就成功了。
我不知道为什么。也许有准确的IP地址,移动设备中的东西是暂时的。
答案 2 :(得分:-3)
请参阅Node JS not listening to port 1337 on server
上的类似主题您的网络服务器没有收听远程地址。