ulidtko
22.07.2012 14:29 уважением
http://docs.oracle.com/javase/1.5.0/docs...
> Using IPv6 in Java is easy; it is transparent and automatic. Unlike in many other languages, no porting is necessary.
Это же надо быть такими мудаками, ну!
PS: -Djava.net.preferIPv4Stack=true
а собссно что не нравится, не ищем лёгких путей?
Не понял.
не нравятся попытки быть слишком умными в неподходящем месте. Ну и ещё то, что у меня из-за этого сервер не работает.
Это много где так. В андроиде тоже, вон, жабер по IPv6 подключаться пытался, хотя у меня ejabberd только на v4 слушал. Хотя и там жаба, да. ssh и telnet схоже себя ведут.
когда в жабе создаёшь AF_INET сокет (AF_INET, не AF_INET6, блджад!), и она считает хост поддерживающим ipv6, то создаётся v6 сокет вместо v4.
про ssh и telnet не пизди, они как клиенты совсем другую логику применяют.
Я же сейчас не могу ни заставить сервер (written in java) слушать на ipv4 адрес, ни зайти на него по ipv6.
который умеет принимать v6 и v4 подключения.
где проблема?
проблема в том, что нихуя он v4 не принимает
А ты на каком интерфейсе его открываешь? Уж не по v4 ли адресу?
по v4. В пределах локалки работает. Если через WAN адрес с пробросом порта — нет.
Ладно, похоже, я просто хуй и что-то не осилил допердолить в настроечках.
Дык, если ты его прибил ржавыми кривыми гвоздями к v4-адресу, разумеется, он не будет работать, если тип сокета v6. Прибивай к ::ffff:192.168.1.1, может, так пойдёт по обоим протоколам.
нет, ничего я никуда не прибивал, проброс делается клиентом upnp
Бля, ну как ты сокет на прослушку открываешь? Его ж биндить надо на какой-то адрес.
на 0.0.0.0, обв
А надо на ::
Вообще, погляди нетстатом, по какому протоколу у тебя слушается сокет и на каком адресе.
но дохуя умная жабка открывает-то всё равно на :: :D
tcp6 0 0 :::25565 :::* LISTEN 2036/minecraft-serv
tcp6 0 0 :::25575 :::* LISTEN 2036/minecraft-serv
пока не поглядел, бугурта в /0 не ощутил.
А при коннекте что происходит? В каком состоянии коннект?
какая забавная идея, надеяться на UPNP для проброса портов к серверу.
вы вообще с чего взяли что UPNP понимает универсальные сокеты? и видит что к ним нужно что-то пробрасывать?
не открывается он вообще. Мб роутер не умеет в вот эту ссаную трансляцию с ::ffff ?
Может. А как именно ты upnp дёргаешь, чем?
а на что мне, блядь, с dhcp адресами надеяться, на libastral?
или на ручное назначение адресов каждой железке в доме?
ололо кто бы мог подумать.
но нет, насколько я понимаю это ваше говно под названием UPNP, это его т.н. "клиент" не видит открытых двупротокольных сокетов на вашем хосте, и ни о чём не сообщает роутеру
upnpc, который http://miniupnp.free.fr/
в DHCP есть статическое назначение адресов хостам, привязка выдаваемого адреса к МАКу. Неожиданно, правда?
Воооот, теперь давай целиком команду.
у меня для этого всего счастья нет нужных полей и галочек в вебморде dd-wrt, ГАГАГА. Да и в поддержке этого всего там я сомневаюсь, на девайсе с минимумом едва доступной nvram.
в OpenWRT всё это есть и с полным комфортом. DD-WRT настолько хуже?
съеби
MYIP=$(upnpc -P | grep 'Local LAN ip address' | cut -d":" -f2)
upnpc -a $MYIP 25565 25565 TCP
upnpc -a $MYIP 25565 25565 UDP
ебанный стыд, да, но впилить -Djava.net.preferIPv4Stack=true, чувствую, будет значительно быстрее.
короче автор нуб и опозорился, а виноват как обычно IPv6
я нуб и опозорился, а ты съеби
Просто жабка немного опережает время. С одной стороны, это плюс — тебе пришлось узнать много нового про IPv6, и теперь ты более готов к будущему. С другой — минус, ведь из коробки ничего не заработало, и случилась поболь. Вот теперь решай дальше, форсировать ли v4 в сервере или докрутить проброс (если он понимает v6 вообще).
форсировать v4, конечно же. ПО в роутере слишком слабое для докручивания v6, как мне кажется. Хотя провайдер какой-то там диапазон выдаёт, что приятно, но... как-нибудь в следующий раз™.
собственно, потому и бугурт от жабки: мое окружение к ipv6 не готово, а они, пытаясь быть очень умными, фейлят, и ломают этим работу в v4. Нехорошо это.
Нам вот тоже выдают /64, я накостылил под это дело скрипт, который распихивает адреса по интерфейсам и анонсирует префикс в локалку, так что любой v6-девайс автоматически получает все настройки (как DHCP, но удобнее). Вообще, я тоже раньше сидел на DD-WRT, но по случаю прихода IPv6 в нашу деревню перекатился на Прошивку От Олега. Она сочетает и простую веб-морду, и обилие возможностей через шелл. В принципе, день поразбирался, и всё заработало. OpenWRT выглядит сложнее в плане куда большего пердоленья и, что самое главное, отсутствие полноценной поддержки моего RT-N16. В олеговской прошивке есть те же самые скрипты на бут, фаервол, монтирование внешнего носителя и прочее, сохранение FlashFS, меньше памяти жрёт, больше управляемость. Ну и v6 держит нативный, вот DD-WRT умеет только туннели, т.к. там PPPoE-плагин для PPPd не умеет v6, я его даже пересобирал, но не помогло — коннектится и трафик не пускает. Так шо гляди. А фейлы у тебя всё же от роутера, а не от жабки, она же типа как для серверов, там ната нет и связанных с ним проблем тоже.