Webserver
如何從另一台機器訪問執行在 Palm Pre 上的 Web 伺服器?
我有一個 Palm Pre,我已經在上面安裝了我的網路伺服器,它偵聽埠 8080。當我在 Pre 的瀏覽器上打開 192.168.1.104:8080 時(這是設備的 IP 地址,我失敗了)使用 localhost 或 127.0.0.1),它顯示圖像,一切正常。
但我無法從外部訪問網路伺服器,例如從我的台式機,它顯示超時。Pre 上是否有防火牆,或者有什麼問題?如有必要,我可以更改伺服器的埠號。我沒有配置Pre,只是安裝了SSH。此外,我可以通過 SSH 連接到 Pre,並從 Pre 連接到我的桌面。
更新:
ifconfig說:
eth0 Link encap:Ethernet HWaddr 00:1D:FE:B5:99:51 inet addr:192.168.1.104 Bcast:192.168.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:486 errors:0 dropped:0 overruns:0 frame:0 TX packets:284 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:69398 (67.7 KiB) TX bytes:40051 (39.1 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1248 errors:0 dropped:0 overruns:0 frame:0 TX packets:1248 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:128070 (125.0 KiB) TX bytes:128070 (125.0 KiB)
iptables -nvL說:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 370 29404 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 1248 128K ALLOWED_PACKETS all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 INVALID_PACKETS all -- !lo * 127.0.0.0/8 0.0.0.0/0 0 0 REJECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 flags:0x17/0x02 state NEW reject-with tcp-reset 0 0 DROP tcp -- bridge0 * 0.0.0.0/0 0.0.0.0/0 tcp dpts:4444:4445 47 28580 ALLOWED_PACKETS all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ALLOWED_PACKETS all -- bridge0 * 0.0.0.0/0 0.0.0.0/0 0 0 ALLOWED_PACKETS all -- usb0 * 0.0.0.0/0 0.0.0.0/0 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 0 state NEW 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 0 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 3 state NEW 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 3 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 4 state NEW 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 4 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 5 state NEW 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 5 3 252 ICMPFLOOD icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8 state NEW 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 11 state NEW 0 0 ALLOWED_PACKETS icmp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 5 icmp type 11 0 0 ALLOWED_PACKETS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5353 0 0 ALLOWED_PACKETS udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:5353 0 0 ALLOWED_PACKETS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3689 0 0 ALLOWED_PACKETS udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:3689 0 0 ALLOWED_PACKETS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x04/0x04 36 4604 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 3/sec burst 5 LOG flags 0 level 7 prefix `IPT_PACKET_DROPPED_NO_MATCH: ' 36 4604 QUEUE all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 INVALID_PACKETS all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID Chain OUTPUT (policy ACCEPT 1541 packets, 166K bytes) pkts bytes target prot opt in out source destination Chain ALLOWED_PACKETS (20 references) pkts bytes target prot opt in out source destination 1298 157K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain ICMPFLOOD (1 references) pkts bytes target prot opt in out source destination 3 252 all -- * * 0.0.0.0/0 0.0.0.0/0 recent: SET name: ICMP side: source 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 1 hit_count: 6 TTL-Match name: ICMP side: source limit: avg 1/sec burst 1 LOG flags 0 level 4 prefix `IPT_ICMPFLOOD: ' 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 recent: UPDATE seconds: 1 hit_count: 6 TTL-Match name: ICMP side: source 3 252 ALLOWED_PACKETS all -- * * 0.0.0.0/0 0.0.0.0/0 Chain INVALID_PACKETS (2 references) pkts bytes target prot opt in out source destination 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 100 LOG flags 0 level 4 prefix `IPT_INVALID_PACKETS_DROPPED: ' 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
我認為,埠 8080 或我想要的任何埠都應該接受 TCP,就像 22 (SSH) 一樣。
目前,除非明確允許,否則傳入流量將被阻止(這就是
policy DROP
意思)。有一些規則允許“合法”流量,例如,第一條規則允許傳入的 ssh 連接(tcp dpt:22
意味著 TCP 流量到埠 22,這就是 ssh 埠)。啟用 Web 伺服器的手動方法是添加允許傳入流量到該埠的 iptables 規則。假設您要打開埠 80。您可以使用以下命令打開它:
iptables -I INPUT 24 -p tcp --dport 80 -j ALLOWED_PACKETS
(請注意,我遵循埠 3689 和 5353 的模型,這允許進行速率控制等操作。SSH 是經過特殊處理的,我想是為了降低配置錯誤導致無法訪問的風險。)
可能有一種規範的方法可以在啟動時應用您的設置。Google搜尋建議,一旦你有一個令人滿意的設置,你可以讓它永久化
iptables-save >/etc/pmnetconfig/iptables-common.config
我不知道 WebOS,所以我無法確認這個文件的位置。
在你的實驗過程中,如果你搞砸了,你可以刪除一個特定的規則(例如第 42 條)
iptables -D INPUT 42
。假設上面的位置是正確的,你可以恢復啟動時間設置iptables-restore </etc/pmnetconfig/iptables-common.config