августа 21 2010 11:02 пп

Отключение ipv6 для JavaVM

Недавно я столкнулся с проблемой, есть у меня Jabber сервер, и он работает на Java. Я добавил в него внешний компонент, и решил перезапустить, после чего он по непонятным для меня причинам стал слушать только на ipv6. Ниже я опишу как устранить такое поведение у Java приложений.


После перезапуска jabber сервера в выводе netstat он выглядел примерно так

Код:

# netstat -pnl|grep java
tcp6       0      0 :::7777                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::9090                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::9091                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::5222                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::5223                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::5229                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::7443                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::5269                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::5275                 :::*                    LISTEN      6611/java       
tcp6       0      0 :::7070                 :::*                    LISTEN      6611/java       
udp6       0      0 :::10020                :::*                                6611/java

Для нормального запуска Java приложений на ipv4 необходимо добавить к команде запуска ключ

Код:

-Djava.net.preferIPv4Stack=true

В моем случае это был Jabber сервер Openfire, крутится он на Ubuntu, в следствие чего имеет конфиг файл в директории /etc/default, куда можно добавить параметры для запуска по умолчанию, в других случаях можно просто добавить вышеприведенный пример в ваш стартовый скрипт для Java приложения.

После запуска с указанием ключа -Djava.net.preferIPv4Stack=true netstat для Java выглядел так

Код:

#netstat -pnl|grep java
tcp        0      0 0.0.0.0:7777            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:9091            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:5223            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:5229            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:7443            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:5269            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:5275            0.0.0.0:*               LISTEN      7162/java       
tcp        0      0 0.0.0.0:7070            0.0.0.0:*               LISTEN      7162/java       
udp        0      0 0.0.0.0:10020           0.0.0.0:*                           7162/java

На этом собственно все, надеюсь эта заметка пригодится вам.




8 комментариев »


8 комментариев to “Отключение ipv6 для JavaVM”

  1. Tweets that mention Отключение ipv6 для JavaVM | Stepanoff Home Network -- Topsy.com on 21 Авг 2010 at 23:37 #

    […] This post was mentioned on Twitter by iliastahirov, Максим Степанов. Максим Степанов said: New blog post: Отключение ipv6 для JavaVM — http://tinyurl.com/2abs26b […]

  2. gulik on 07 Июн 2012 at 11:06 #

    У меня что-то все остается по старому, делаю так:

    /etc/init.d/openfire start -Djava.net.preferIPv4Stack=true

    netstat -pnl|grep java
    tcp 0 0 :::7777 :::* LISTEN 7834/java
    tcp 0 0 :::9090 :::* LISTEN 7834/java
    tcp 0 0 :::5222 :::* LISTEN 7834/java
    tcp 0 0 :::5229 :::* LISTEN 7834/java
    tcp 0 0 :::5269 :::* LISTEN 7834/java

  3. Максим Степанов on 07 Июн 2012 at 11:21 #

    Не правильно делаете, надо добавить в конец файла /etc/default/openfire строку

    DAEMON_OPTS=»-Djava.net.preferIPv4Stack=true»

  4. Максим Степанов on 07 Июн 2012 at 11:22 #

    Странно, парсер попортил кавычки…

  5. gulik on 07 Июн 2012 at 12:05 #

    у меня там нет такого файла, я его вручную создал, но все без изменений 🙁

  6. gulik on 07 Июн 2012 at 17:25 #

    у меня ОС SUSE ставил я OpenFire из YaST`a

  7. Максим Степанов on 07 Июн 2012 at 17:33 #

    Не пользовался ей, возможно там опции запуска в другом файле

  8. gulik on 07 Июн 2012 at 22:04 #

    Решил свою проблему так:
    Добавил строку «blacklist ipv6» в файл /etc/modprobe.d/blacklist
    После ребута получил такой ответ:

    netstat -pnl|grep java
    tcp 0 0 0.0.0.0:7777 0.0.0.0:* LISTEN 4914/java
    tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN 4914/java
    tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 4914/java
    tcp 0 0 0.0.0.0:5229 0.0.0.0:* LISTEN 4914/java
    tcp 0 0 0.0.0.0:5269 0.0.0.0:* LISTEN 4914/java

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »

  • Реклама

  • Ссылки



  • Теги



Server load average: 0.00, 0.00, 0.00
Server uptime: 355 days, 11:57
Your IP is: 54.162.76.55.