Программа openssl выполняет тесты на простоту:
$ a=31
$ openssl prime 31
1F (31) is prime
$ openssl prime 18446744073709551557
FFFFFFFFFFFFFFC5 (18446744073709551557) is prime
Команда указана в справке(openssl help
):
$ openssl help 2>&1 | grep prime
pkeyparam pkeyutl prime rand
Подробная информация о фактической команде дана(-help
или --help
):
$ openssl prime -help
Usage: prime [options] [number...]
number Number to check for primality
-help Display this summary
-hex Hex output
-generate Generate a prime
-bits +int Size of number in bits
-safe When used with -generate, generate a safe prime
-checks +int Number of checks
Также возможны очень длинные числа (2^521 )-1 (Число Мерсенна со 157 десятичными разрядами):
$ time openssl prime $(BC_LINE_LENGTH=0 bc <<<'2^521-1')
1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
(6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151)
is prime
real 0m0.042s
Две другие утилиты, не связанные с openssl, но связанные с простыми числами::
primes - generate primes in a range factor - factor numbers
$ echo $(primes 10 50)
11 13 17 19 23 29 31 37 41 43 47
$ openssl prime 11 13 17 19 23 29 31 37 41 43 47
B (11) is prime
D (13) is prime
11 (17) is prime
13 (19) is prime
17 (23) is prime
1D (29) is prime
1F (31) is prime
25 (37) is prime
29 (41) is prime
2B (43) is prime
2F (47) is prime
$ factor 11 13 17 19 23 29 31 37 41 43 47
11: 11
13: 13
17: 17
19: 19
23: 23
29: 29
31: 31
37: 37
41: 41
43: 43
47: 47
$ factor 18446744073709551557
18446744073709551557: 18446744073709551557
$ factor 18446744073709551559
18446744073709551559: 41 163 269 8807 1165112831
Довольно близко к максимальному (со знаком )64-битное целое число:
$ printf '%X\n' 18446744073709551559 $(( (2<<63) - 1 ))
FFFFFFFFFFFFFFC7
FFFFFFFFFFFFFFFF
посмотри здесь , но пусть это немного сведется к твоей проблеме:
Вы можете использовать iptables для пометки пакетов на порт назначения 22
iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j MARK --set-mark 22
Таким образом, вы можете вставить правило с высоким приоритетом для маршрутизации этих пакетов через eth0
ip rule add priority 32000 fwmark 22 table 22
ip route flush table 22
ip route add table 22 default dev eth0
Не проверял, и возможным побочным эффектом может быть то, что вы больше не сможете подключиться к порту 22 через VPN
После некоторых исследований я обнаружил, что мне не нужна маршрутизация, которую wg -quick делает после установления соединения. Итак, решение довольно простое. Проведите линию
Table = off
в разделе [Interface]
. Это предписывает wg -не создавать правила и маршруты для ip.