Определение архитектуры Linux из файлов

От клиента Linux (212.1.1.1), выполняет эту команду в терминале:

ssh -L 3130:localhost:3128 192.168.1.1

Это перенаправляет соединения с портом TCP 3130 на клиенте Linux к порту TCP 3128 на 192.168.1.1. Можно выбрать, какой бы ни портируют Вас как вместо 3 130 на локальной машине. На прокси используйте любой порт, на котором программа прокси работает (это могло быть 3128, или 8080, или другой порт в целом).

Когда Вы хотите использовать прокси, сказать Вашему браузеру использовать localhost порт 3130 в качестве прокси (http://127.0.0.1:3030/).

Если Вы не хотите должными быть изменять свои настройки браузера каждый раз, когда Вы запускаете и прекращаете использовать прокси, используете расширение браузера, такое как Лисий Прокси для Firefox или эквивалентного Chrome и настраиваете его для использования http://127.0.0.1:3030/ как прокси только для соответствия URL http://access.lan:52050/*.

Если Вы собираетесь сделать это часто, добавьте следующие строки к файлу ~/.ssh/config:

Host some_proxy
HostName 192.168.1.1
LocalForward 3130 localhost:3128

Затем выполненный ssh some_proxy (можно выбрать более значительное имя, чем some_proxy).

Примечание: Версия 1 SSH является старинной. Я думаю команды, которые я упомянул, существовал тогда, но я не проверял. Я удивлен, что сервер версии 1 SSH все еще работает. Вы уверены, что не можете использовать версию протокола 2 SSH?

2
30.04.2013, 02:50
7 ответов

Просто выполненный file на изображении ядра. Это покажет, какая архитектура двоичный файл был скомпилирован как. file vmlinuz-2.6.18-194.32.1.el5.

Править: Петляние на ядре OP не возвращает точную архитектуру, таким образом, ответ не действителен. Я буду пробовать его на своих ядрах и видеть, получаю ли я больше информации.

4
27.01.2020, 21:49
  • 1
    последовательности, По крайней мере, на Debian, который он не делает: file /boot/vmlinuz-3.8-trunk-amd64 дает /boot/vmlinuz-3.8-trunk-amd64: Linux kernel x86 boot executable bzImage, version 3.8-trunk-amd64 (debian-kernel@lists.debian.org) #1 SMP Debian , RO-rootFS, swap_dev 0x2, Normal VGA ... единственный amd64 там от строки версии ядра (который Debian помещает там). На самом деле это говорит, что его x86, таким образом, Вы думали бы 32-разрядные. –  derobert 30.04.2013, 00:09
  • 2
    Теперь, если Вы делаете это на случайном исполняемом файле вместо этого (скажите, /bin/bash) Вы добираетесь /bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0x5bb332752cc304fa7fbb838bdf7d7766ffc7a8a1, stripped ... который действительно включает архитектуру. –  derobert 30.04.2013, 00:10
  • 3
    @derobert x86 не подразумевает 32-разрядный, имя покрывает и 32-разрядные и 64-разрядные варианты архитектуры. amd64 подразумевает 64-разрядный. –  Gilles 'SO- stop being evil' 30.04.2013, 02:42
  • 4
    @Gilles Да, AMD64 делает, но это - часть версии (uname -r дает 3.8-trunk-amd64, и это - вещь Debian, не существующая на RHEL/CentOS/etc., AFAIK. Также можно было установить ту версию с 32-разрядным Debian также.) И 'x86 загрузочный сектор' относится к загрузочному сектору BIOS прежней версии (были Вы для копирования ядра в дискету), который является определенно 32-битным кодом. Но да, в общем x86 иногда включает обоих — но это не помогает здесь. сценарии –  derobert 30.04.2013, 18:41
  • 5
    @derobert загрузочный код BIOS прежней версии является 16-битным кодом на самом деле. Наблюдение “x86” здесь ничего не подразумевает на ядре, являющемся 32-разрядным или 64-разрядным. –  Gilles 'SO- stop being evil' 30.04.2013, 19:41

file vmlinuz-2.6.18-194.32.1.el5 скажет Вам, для какой архитектуры ядро было скомпилировано. Если существует файл /boot/config-2.6.18-194.32.1.el5, это даст больше информации о параметрах компиляции ядра, включая архитектуру процессора.

ls /lib* скажет Вам, какую архитектуру пространство пользователя поддерживает. Например, если существует /lib/ld-linux.so.2 в x86 системе затем у Вас есть, по крайней мере, основная 32-разрядная поддержка. Если существует /lib/ld-linux-x86-64.so.2 или /lib64/ld-linux-x86-64.so.2 затем Вы имеете, по крайней мере, основной 64-разрядный (amd64) поддержка. file /bin/ls скажет Вам, от чего компилируются утилиты архитектуры (обычно, целое пространство пользователя ОС компилируется для одной архитектуры, возможно, с дополнительными библиотеками для другого ABI для пользовательских приложений).

Ядро и пространство пользователя являются не всегда той же архитектурой. Ядра Amd64 могут запустить 32-разрядные пользовательские программы (но не обратное). Если Вы хотели знать, был ли у Вас 32-разрядный или 64-разрядный выпуск CentOS, проверьте ли /bin/ls 32-разрядная или 64-разрядная программа.

4
27.01.2020, 21:49

Ищите/lib64 каталог, если это там, и не пустеют, у Вас, вероятно, была установка на 64 бита, если это не затем, это были 32 бита.

2
27.01.2020, 21:49

Выполненные 'строки/boot/vmlinuz-$VERSION | grep x86-64'. Если это возвращает что-то, что это 64. В противном случае это является 32-разрядным.

2
27.01.2020, 21:49

Делает rpm/yum все еще работа? rpm -q kernel должен сказать, если это x86_64 в конце это - установка на 64 бита.

1
27.01.2020, 21:49

Заглянуть /var/cache/yum. Архитектура Вашего компьютера может быть очевидной в одних из имен каталогов там.

1
27.01.2020, 21:49

Следующий вопрос о StackOverflow может помочь. Можно извлечь .config файл ядра и осмотреть его для выбранной архитектуры: https://stackoverflow.com/questions/14958192/getting-config-from-linux-kernel-image

Так как это - изображение ядра CentOS, ему, вероятно, установили флаг IKCONFIG. Большинство скомпилированных распределенных ядер имеет.

0
27.01.2020, 21:49

Теги

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