постоянная маршрутизация портов от 80 до 8080

Теория (для адвокатов языка и математически наклоненный):

equals() ( javadoc) должен определить отношение эквивалентности (это должно быть рефлексивно , симметричный , и переходный ). Кроме того, это должно быть последовательно (если объекты не изменяются, то это должно продолжать возвращать то же значение). Кроме того, o.equals(null) должен всегда возвращать false.

hashCode() ( javadoc) должен также быть последовательны (если объект не изменяется с точки зрения equals(), это должно продолжать возвращать то же значение).

отношение между этими двумя методами:

Каждый раз, когда a.equals(b), тогда a.hashCode() должно быть то же как b.hashCode().

На практике:

, Если Вы переопределяете один, тогда необходимо переопределить другой.

Использование тот же набор полей, которые Вы используете для вычисления equals() для вычисления hashCode().

Использование превосходные классы помощника EqualsBuilder и HashCodeBuilder от библиотека Commons Lang Apache. Пример:

public class Person {
    private String name;
    private int age;
    // ...

    @Override
    public int hashCode() {
        return new HashCodeBuilder(17, 31). // two randomly chosen prime numbers
            // if deriving: appendSuper(super.hashCode()).
            append(name).
            append(age).
            toHashCode();
    }

    @Override
    public boolean equals(Object obj) {
       if (!(obj instanceof Person))
            return false;
        if (obj == this)
            return true;

        Person rhs = (Person) obj;
        return new EqualsBuilder().
            // if deriving: appendSuper(super.equals(obj)).
            append(name, rhs.name).
            append(age, rhs.age).
            isEquals();
    }
}

Также помните:

При использовании основанного на хеше Набор или Карта такой как [1 117] HashSet, LinkedHashSet, HashMap, Хеш-таблица , или WeakHashMap, удостоверяется, что хэш-код () ключевых объектов, которые Вы помещаете в набор, никогда не изменяется, в то время как объект находится в наборе. Пуленепробиваемый способ гарантировать это состоит в том, чтобы сделать Ваши ключи неизменными, , который обладает также другими преимуществами .

22
задан 14.05.2020, 10:29

3 ответа

Вот то, как документация официального ipttable учит нас. Видят здесь

, Добавляют эти две строки в/etc/network/interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules

строка "поствниз iptables-сохраняет>/etc/iptables.rules", сохранит правила, которые будут использоваться на следующей начальной загрузке.

0
ответ дан 14.05.2020, 10:30
  • 1
    Престижность за использование официально рекомендуемого метода и, в этом случае, самого простого метода, для выполнения этой задачи. I' d +2, если я мог для использования метода KISS. – Romegypt 14.05.2020, 10:30

Используйте команду iptables-сохранения вместо этого. Правила брандмауэра никогда не должны входить в rc.local сценарий. rc.local является последней вещью, которая будет выполняться. Если правило блока было помещено в rc.local существует маленький период времени, где взломщик может использовать правило, не существующее. В то время как это, вероятно, не имеет значения с этой ситуацией, все еще лучше не войти в дурную привычку, которая может укусить Вас позже.

0
ответ дан 14.05.2020, 10:30
  • 1
    Ответ является неполным. iptables-save > some-file-path сохраняет правила, и затем Вы восстановили бы их через iptables-restore < some-file-path в rc.local. Или установка iptables-persistent, который делает это во время начальной загрузки как услуга. – Hovercraft Full Of Eels 14.05.2020, 10:30
  • 2
    I' d нравится понимать, как сделать это. Будьте более конкретными, – Hovercraft Full Of Eels 14.05.2020, 10:31
  • 3
    выполнил " sudo iptables-t туземный-A PREROUTING-p tcp - ПЕРЕНАПРАВЛЕНИЕ dport 80-j - к 8080" и " sudo iptables-save". но маршрутизация была сброшена на перезагрузке. Я неправильно понимал, как сделать это? – Kdot125 14.05.2020, 10:31

Можно добавить эту команду в /etc/rc.local, таким образом, она будет выполняться автоматически после перезагрузки.

0
ответ дан 14.05.2020, 10:30
  • 1
    Это работает, но реальный ответ является @MeOMy' s отвечают ниже. – Kdot125 14.05.2020, 10:31
  • 2
    Уже сделал это, но все еще благодарит за ответ – G-Man83 14.05.2020, 10:31
  • 3
    приветствуйте моего друга, это - хороший прием – Hovercraft Full Of Eels 14.05.2020, 10:32

Теги

Похожие вопросы