2010-03-29 33 views
3

我用Netbeans6.7編寫了一個servlet,它運行時會打開一個瀏覽器窗口,其地址爲:http://localhost:8080/My_App/Test_Servlet,我用我的IP地址替換了「localhost」,現在看起來像這樣:http://192.???.1.??:8080/My_App/Test_Servlet,但我試圖從我家外的另一臺計算機訪問它,它無法讀取任何內容,我想知道是否需要更改Windows Fire Wall設置以允許外部流量,這是一個PayPal IPN應用程序,所以我打電話給PayPal,他們說他們無法訪問:http://192.???.1.??:8080/My_App/Test_Servlet如何從外部訪問在我的PC上運行的Java servlet?

我應該怎麼做才能允許來自「paypal.com」的流量訪問「My_App/Test_Servlet」?


部分成功!在閱讀文章後,設置靜態IP,端口轉發,我可以從Paypal的測試IPN頁面發送一條消息,當我嘗試發送第二條消息時,它無法通過,所以我停止啓動我的servlet,然後我可以爲什麼發送另一個ONE消息,在第二個消息中再次失敗? Frank

回答

5

我不能決定是否通過投票這一serverfault.com或superuser.com,所以心裏很不舒服,我在這裏回答:

你引述看起來像本地地址的IP地址(192.168例如,.xx是本地範圍之一),因此地址永遠不會從網絡外部訪問。這是您的路由器(或調制解調器)分配給您的地址。

要允許從外界打電話到您的PC:

  • 你的電腦需要您所期望的呼叫一個(任何時間,如果它是一個貝寶IPN,這幾乎總是)
  • 你必須有一個靜態IP地址,你的網絡連接,或使用dynamic DNS服務
  • 你必須給貝寶你的互聯網連接的靜態IP地址(而不是你的電腦的內部一個),或者你的DNS名稱已設置動態服務
  • 您必須配置路由器將請求轉發到您的靜態公共地址到您的計算機(因爲您的路由器可能支持多臺計算機,並且需要知道哪個特定的人應該處理請求)
  • 如果您使用軟件防火牆Windows防火牆,您必須告訴它它可以接受該端口上的請求。

不要讓這看起來令人生畏。這是不平凡的,但並不難。但請注意,只要您告訴路由器將端口轉發給您,您就繞過了路由器可能提供的大部分或全部防護措施,以抵禦計算機上的攻擊(在該端口上;通常是攻擊者端口掃描) 。它可能沒有提供,但它可能提供了一些。

+0

你有沒有考慮過metastackoverflow? *諷刺笑* :-) – 2010-03-29 16:21:34

+0

@Elite:doctype.com!不,呃,基本上是money.com!嗯... – 2010-03-29 16:26:53

+0

我怎麼知道我是否有「靜態IP地址」,如果我沒有它,如何「使用動態DNS服務」?我需要支付「端口轉發」服務嗎? – Frank 2010-03-29 16:59:04

1

沒有辦法從外部訪問您的應用程序到您的本地PC。首先,你的IP地址不是靜態的。當它到達您的Internet雲服務提供商時,您將擁有另一個IP地址。

一個更好的解釋(從http://portforward.com/help/portforwarding.htm):

1)互聯網上的每臺設備至少有一個IP地址。 IP地址是一個用於識別設備的號碼 。欲瞭解更多 有關IP地址的信息,請參閱 我們的什麼是IP地址頁面。

2.)每個IP地址被分成許多端口。當一臺計算機 將數據發送到另一臺計算機時,它 將其從IP地址爲 的端口發送到IP地址上的端口。

3.)端口一次只能由一個程序使用。

可以幫助您的唯一解決方案是Port Forward。請參閱here將您的路由器端口轉發。

0

您必須配置您的路由器以將端口8080端口轉發至您的PC,並在您通過Paypal提供的URL中使用路由器的外部IP地址。

請參閱portfward.com

相關問題