Webserver

如何從另一台機器訪問執行在 Palm Pre 上的 Web 伺服器?

  • February 27, 2011

我有一個 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

引用自:https://unix.stackexchange.com/questions/8270