web-dev-qa-db-ja.com

Ubuntuで使用/ブロックされたポート

glassfish ASを起動すると、ポート4848(または私が設定したポート)がブロックされていることがわかります。ただし、ポートのチェックは使用されません。ファイアウォールはありません。

root@ubuntu:~/glassfishv3/glassfish/bin# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2149/sshd       
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2441/cupsd      
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      2075/postgres   
tcp6       0      0 :::22                   :::*                    LISTEN      2149/sshd       
tcp6       0      0 :::5432                 :::*                    LISTEN      2075/postgres   
udp        0      0 0.0.0.0:68              0.0.0.0:*                           2082/dhclient3  
udp        0      0 0.0.0.0:39256           0.0.0.0:*                           2413/avahi-daemon: 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           2413/avahi-daemon: 

Ubuntu 9.04 Linux ubuntu 2.6.28-11-generic#42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009 x86_64 GNU/Linux(仮想サーバーハフ)。

この問題にどのように取り組むかはよくわかりません。

5
javadude

etc/hostsファイルがありません!

Java.net.UnknownHostException: ubuntu: ubuntu
    at Java.net.InetAddress.getLocalHost(InetAddress.Java:1353)
    at com.Sun.enterprise.util.net.NetUtils.getCanonicalHostName

単純な理由で、複雑な問題を検索しない場合もあります。

3
javadude

127.0.1.1your-computer-nameを/ etc/hostsに追加します

そしてさらに試みる!

宜しくお願いします。

2
jnduan

この問題が発生し、原因は/ etc/hostsにあり、2つのエントリがあり、「hostname」コマンドが2番目のエントリへの参照を返しました。 2番目のエントリが最初のエントリになったとき。 127.0.1.1 my.domainname.com(またはlocalhost)を実行すると、問題が修正されました。

1
Alan C

私がちょうど遭遇したもう一つの理由は、ホスト名とIPアドレスがちょうど一致しなかったということでした:

hostname
XXXXXX
hostname -i
XXX.XXX.XXX.42

hostname -iによって返されるIP番号は、サーバーに割り当てられているものとは異なります。私の推測では、これによりGlassfishはhostname -iによって返された古いIPアドレスのポートをバインドしようとしますが、これは明らかに失敗します。

この問題は、インストール後にマシンが別のネットワークセグメントに移動されたことが原因で発生しました。

1
A.Grandt

同様の例外が発生したら、誰かがそれを必要とする場合に備えて、ここに解決策を投稿します:管理ポート4848をすでに使用しているプロセスがあります-おそらくGlassFishサーバーの別のインスタンスです。 ==

Java.net.BindException:無効な引数:bind:7676 = com.Sun.enterprise.v3.services.impl.ServiceInitializerHandler

、「/ etc/sysctl.d/bindv6only.conf」のキー「net.ipv6.bindv6only」を「1」から「0」に変更する必要があります。これは、IPV6アプリケーションを有効にするカーネルパラメータです。 IPV6の「要求」のみをリッスンします(要求は式ではありませんが、要点はわかります)

1
Charles Bedon

私にとって、問題は複数のインターフェースによる「ホスト名」であることが判明しました。

'hostname'を実行して、結果にpingを実行できるかどうかを確認します

Java -jar glassfish3/glassfish/modules/glassfish.jarを実行し、詳細ログを確認します

hostname localhostでホスト名を「localhost」に設定します

肝心なのは、サーバーがホスト名にバインドするのに問題があるということです(エラーメッセージに表示されているようなポートではありません)

1
Ganesh Krishnan

ポートがファイアウォールでブロックされていることを示している可能性はありますか?その場合は、着信接続を許可するルールを構成する必要があります。

0
gorilla

Insyteが示唆しているように、正確なエラーはトラブルシューティングに役立つ可能性があります。

しかし、glassfishで何も役に立たない場合は、strace(1)を検討して、失敗したシステムコールとそれがスローするエラーを見つけることができます。 Glassfishの動作によっては、分岐した子プロセスを追跡するために-fが必要になる場合があります。

0
dotplus