Спасибо за ответ, здорово, что не бросаете статью после написания. Я немного подразобрался, ваша нелюбовь к панелькам типа 3X-UI оправдана: она в расширенной настройке (редактирование джсона) не даёт никаких других inbound, разрешая их настраивать только через интерфейс. Т.е. основной inbound она вырезает из джисона конфига и не сохраняет в конфиг даже DNS. Нашёл где панель хранит настройку x-ray на диске, поправил конфиг согласно вашей статье, но панель при перезагрузке всё равно вырезает правки и оставляет только настроенное в её интерфейсе. Так что, видимо, придётся сносить и настраивать "чистый" x-ray. Может, посоветуете что-то, что упростит его настройку? В панели удобно настраивать клиентов, есть qr-код. Нашёл на просторах гихаба easy-xray, не сталкивались?
Важная статья, но далёким от настройки сетей сложно понять всё до конца. У меня ВПС-ка без IPv6, инста, соответственно, не работает. Хочу настроить по вашей статье Xray в 3X-UI, но многоточия мешают.
А я еще я в предыдущем вашем посте написал вот такой коммент коммент.
И судя по ссылке оттуда выходит, что не нужно бросать исключения в конструкторе энума. Это лишний код. На который вам нужно писать лишние тесты (по-хорошему).
Наглядно написанное ораклом ссылку демонстрирует вот такой пример:
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public final class Test {
public static void main(String[] args) {
try {
final Constructor<?> qwertyConstructor = Qwerty.class.getDeclaredConstructors()[0];
qwertyConstructor.setAccessible(true);
System.out.println("I've got " + qwertyConstructor.newInstance());
final Constructor<?> timeUnitConstructor = java.util.concurrent.TimeUnit.class.getDeclaredConstructors()[0];
timeUnitConstructor.setAccessible(true);
timeUnitConstructor.newInstance();
System.out.println("You'll never see me.");
} catch (IllegalAccessException | InvocationTargetException | IllegalArgumentException | InstantiationException x) {
x.printStackTrace();
}
}
}
class Qwerty {
private Qwerty() {
}
}
I've got ololo.Qwerty@45ee12a7
java.lang.IllegalArgumentException: Cannot reflectively create enum objects
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at ololo.Test.main(Test.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
An enum type has no instances other than those defined by its enum constants. It is a compile-time error to attempt to explicitly instantiate an enum type (§15.9.1).
In addition to the compile-time error, three further mechanisms ensure that no instances of an enum type exist beyond those defined by its enum constants:
The final clone method in Enum ensures that enum constants can never be cloned.
Reflective instantiation of enum types is prohibited.
Special treatment by the serialization mechanism ensures that duplicate instances are never created as a result of deserialization.
Настроил чистый xray, при настройке встроенного DNS клиенты (Android - NekoBox, iOS - Streisand) перестают работать.
Спасибо за ответ, здорово, что не бросаете статью после написания. Я немного подразобрался, ваша нелюбовь к панелькам типа 3X-UI оправдана: она в расширенной настройке (редактирование джсона) не даёт никаких других inbound, разрешая их настраивать только через интерфейс. Т.е. основной inbound она вырезает из джисона конфига и не сохраняет в конфиг даже DNS. Нашёл где панель хранит настройку x-ray на диске, поправил конфиг согласно вашей статье, но панель при перезагрузке всё равно вырезает правки и оставляет только настроенное в её интерфейсе. Так что, видимо, придётся сносить и настраивать "чистый" x-ray. Может, посоветуете что-то, что упростит его настройку? В панели удобно настраивать клиентов, есть qr-код. Нашёл на просторах гихаба easy-xray, не сталкивались?
Важная статья, но далёким от настройки сетей сложно понять всё до конца. У меня ВПС-ка без IPv6, инста, соответственно, не работает. Хочу настроить по вашей статье Xray в 3X-UI, но многоточия мешают.
{"type": "field", "inboundTag": [...], "port": 53, "outboundTag": "dns"},Что должно быть в массиве
inboundTag?Все что есть в inbounds у меня, это:
"inbounds": [ { "tag": "api", "listen": "127.0.0.1", "port": 12345, "protocol": "dokodemo-door", "settings": { "address": "127.0.0.1" } } ],Это, наверное, не всё, что должно быть? 3X-UI не даёт залезть во внутрянку Xray? Вряд ли сюда надо sniffing настраивать
И судя по ссылке оттуда выходит, что не нужно бросать исключения в конструкторе энума. Это лишний код. На который вам нужно писать лишние тесты (по-хорошему).
Наглядно написанное ораклом ссылку демонстрирует вот такой пример:
Простите за рекламу, но посмотрите мой комент ниже ) Он гораздо компактнее и джава гарантирует, что скажет рефлекшену «Давай, досвиданья».
http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.9
Потому что можем.