web-dev-qa-db-ja.com

TTL macOS High Sierraでどのように変更しますか?

TTL macOS High Sierraでどのように変更しますか?

以前のmacOSバージョンでは、これは次のように行うことができます...

一時的に:

Sudo sysctl -w net.inet.ip.ttl=65

または、/ etc/sysctl.confを作成または編集して永続的に追加します。

net.inet.ip.ttl=65

編集:TTLのテストに関する修正

したがって、TTLが以前に64に設定されていて、65に変更した場合、ping TTLが1ずつ増加しますが、10.13.5では、これは発生していません。

6
Brett

あなたが与えた方法はまだ尊敬されています。

pingがTTL of the ICMP echo reply received)を報告することは、ターゲットホストによって制御されるということです。つまり、 、あなたのpingに対して応答であるマシンICMPエコー(ping)プロトコルは、TTLターゲットホストが使用するものに影響を与える方法を提供するとは思わない。

tcpdumpを実行して、TTLが発信ICMPエコー要求に何があったかを調べて、これを確認しました。少なくとも1つの-vからtcpdumpに移動して、TTLを確認します。

Sudo tcpdump -vi en0 icmp
6
Spiff

10.15.2(19C57)カタリナで動作します。 -wは非推奨であり、省略してください。

sysctl net.inet.ip.ttl=65
net.inet.ip.ttl: 64 -> 65

ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=65 time=0.091 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=65 time=0.091 ms

再起動後に起動デーモンを使用して設定を保持する:/ Library/LaunchDaemons/com.gvalkov.ttl65.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.gvalkov.ttl65</string>
    <key>MachServices</key>
    <dict>
        <key>com.gvalkov.ttl65</key>
        <true/>
    </dict>
    <key>Program</key>
    <string>/usr/bin/sysctl</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/sysctl</string>
        <string>net.inet.ip.ttl=65</string>
    </array>
    <key>UserName</key>
    <string>root</string>
    <key>GroupName</key>
    <string>wheel</string>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

注:sysctlへのパスが正しく取得されたことを願っています!実際のパスを取得するには、which sysctlを実行してください。私のMacBook Pro 2018は、バッテリーの膨潤とキーのスタックが原因で再び修理されているため、現在確認できません。 :(

0
George Valkov