На какой оболочке я работаю?

В получении Вы, если, Эхо-ответ Метки времени в SYN-ACK во втором пакете не соответствует TSVal в SYN в первом пакете и является несколькими секундами позади.

И посмотрите, как все TSecr, отправленные и 173.194.70.108 и 209.85.148.100, являются всеми одинаковыми и не важными от TSVal, который Вы отправляете.

Похоже, что существует что-то, что смешивается с метками времени TCP. Я понятия не имею, что может вызывать это, но это кажется, что это вне Вашей машины. Перезагрузка маршрутизатора помогают в этом экземпляре?

Я не знаю, является ли это тем, что заставляет Вашу машину отправлять RST (на 3-м пакете). Но этому определенно не нравится тот SYN-ACK, и это - единственная вещь неправильно, я могу найти об этом. Единственное другое объяснение, о котором я могу думать, состоит в том, если это не Ваша машина, которая отправляет RST, но, учитывая разницу во времени между SYN-ACK и RST, относительно которого я сомневался бы так. Но на всякий случай, Вы используете виртуальные машины или контейнеры или сетевые пространства имен на этой машине?

Вы могли попытаться отключить метки времени TCP в целом, чтобы видеть, помогает ли это:

sudo sysctl -w net.ipv4.tcp_timestamps=0

Так, или те сайты отправляют поддельный TSecr или существует что-то на пути там (любой маршрутизатор на пути или прозрачный прокси), который искажает или выход TSVal или поступление TSecr или прокси с поддельным стеком TCP. Почему можно было бы исказить метки времени tcp, я могу только размышлять: ошибка, уклонение обнаружения проникновения, too-smart/bogus алгоритм формирования трафика. Это не что-то, о чем я услышал прежде (но затем я не эксперт по предмету).

Как заняться расследованиями далее:

  • Посмотрите, виноват ли маршрутизатор TPLink, почему сброс его, чтобы видеть, помогает ли это или получает движение на внешней стороне также, если это возможно, чтобы видеть, искажает ли это действительно метки времени
  • Проверьте, существует ли прозрачный прокси на пути путем проигрывания с TTLs, рассмотрения заголовков запроса, полученных веб-серверами, или посмотрите поведение при запросе мертвых веб-сайтов.
  • трафик получения в удаленном веб-сервере, чтобы видеть, является ли это TSVal или TSecr, который искажается.
39
17.12.2016, 05:15
5 ответов

$SHELL не обязательно Ваша текущая оболочка, это - оболочка входа в систему по умолчанию. Для проверки оболочки, Вы используете, пробуете

ps $$

Это должно работать над новым Unix/Linux с a ps это поддерживает синтаксис BSD. Иначе это - портативное устройство (POSIX) путь

ps -p $$

Это должно возвратить что-то вроде этого, если Вы работаете tcsh:

8773 pts/10   00:00:00 tcsh

Если Вы хотите иметь tcsh будьте своей оболочкой по умолчанию, используйте chsh установить его.

48
27.01.2020, 19:35
  • 1
    Вы знаете, как я могу проверить это, какой файл конфигурации загружается? (который bashrc) –  coffeMug 16.10.2013, 16:24
  • 2
    @Coffe_Mug, не уверенный, что Вы имеете в виду. Можно установить оболочку по умолчанию с chsh, .bashrc будет только считан, если Вы будете i) выполнение удара и ii) выполнение его как интерактивное, не войдите в оболочку. Как Вы входите в эту машину? –  terdon♦ 16.10.2013, 16:26
  • 3
    у меня есть сценарий, который запускает эту оболочку удара с оболочки tcsh. зеркало –  coffeMug 16.10.2013, 16:28
  • 4
    Почему не просто ps $$ –  cjm 16.10.2013, 18:13
  • 5
    @cjm, почему не действительно, ответ отредактировал. –  terdon♦ 16.10.2013, 18:17

Из командной строки можно также использовать $0 переменная для определения, какую оболочку Вы используете. например:

~$ echo $0
/bin/bash


~$ ksh
$ echo $0
ksh

Примечание: Вы не можете определить оболочку с помощью 0$ в рамках сценария, потому что 0$ будут самим сценарием.

8
27.01.2020, 19:35

Это работает для linux:

lsof -a -p $$ -d txt

или, если вам нужен более сильный выбор (больше систем):

lsof -a +D /bin +D /usr/bin -p $$ -d txt
1
27.01.2020, 19:35

Это поправка ко всем лучшим ответам выше. В какой-то момент у меня была небольшая проблема с определением тире; казалось правильным поделиться:

curl -fsSL http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh | sh
ash (dash 0.5.5.1 ff)

curl -fsSL http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh | bash
bash 4.3.30(1)-release

Подходит для устранения неполадок в труднодоступных местах. Ваше здоровье.

2
20.08.2021, 13:03

В операционной системе Unix/Linux может быть установлено несколько оболочек. Вы можете ввести следующую команду в своем терминале, чтобы увидеть, какую оболочку вы используете:

Ниже приведен список,

  • Борн Шелл – ш
  • C-оболочка – csh
  • Т Шелл – тсш
  • Корн Шелл - кш
  • Bourn -снова Shell – bash
  • Панель приборов
  • Корпус Z

Этот список не является полным, и есть много других оболочек.

В файле /etc/shells хранится список всех оболочек, установленных в вашей системе. Просто запустите приведенную ниже команду, чтобы узнать установленные оболочки,

$ cat /etc/shells

Запустите команду grep в файле /etc/passwd, чтобы узнать оболочку по умолчанию при входе в операционную систему Unix или Linux.

$ grep john /etc/passwd    

Вы также можете использовать переменную $SHELL для той же цели.

echo $0
$ echo $SHELL

Результат будет примерно таким, как показано ниже, если вы используете терминал bash(Bourne Again Shell):Если в вашей системе установлено несколько оболочек, вы всегда можете переключить оболочку.

Так как же узнать, какую оболочку вы используете в данный момент?

Просто используйте приведенную ниже команду

-bash
$ ps -p $$

Думаю, я ответил на все ваши вопросы. Если у вас все еще есть сомнения, вы можете обратиться к этой исходной статье .

0
20.08.2021, 13:03

Теги

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