pub struct Hostinfo {Show 41 fields
pub ipn_version: String,
pub frontend_log_id: String,
pub backend_log_id: String,
pub os: String,
pub os_version: String,
pub container: Option<bool>,
pub env: String,
pub distro: String,
pub distro_version: String,
pub distro_code_name: String,
pub app: String,
pub desktop: Option<bool>,
pub package: String,
pub device_model: String,
pub push_device_token: String,
pub hostname: String,
pub shields_up: bool,
pub sharee_node: bool,
pub no_logs_no_support: bool,
pub wire_ingress: bool,
pub ingress_enabled: bool,
pub allows_update: bool,
pub machine: String,
pub go_arch: String,
pub go_arch_var: String,
pub go_version: String,
pub routable_ips: Vec<String>,
pub request_tags: Vec<String>,
pub wol_macs: Vec<String>,
pub services: Vec<Service>,
pub net_info: Option<NetInfo>,
pub ssh_host_keys: Vec<String>,
pub cloud: String,
pub userspace: Option<bool>,
pub userspace_router: Option<bool>,
pub app_connector: Option<bool>,
pub services_hash: String,
pub exit_node_id: String,
pub location: Option<Location>,
pub t_p_m: Option<TPMInfo>,
pub state_encrypted: Option<bool>,
}Expand description
Hostinfo contains a summary of a Tailscale host.
Because it contains pointers (slices), this type should not be used as a value type.
Fields§
§ipn_version: Stringversion of this code (in version.Long format)
frontend_log_id: Stringlogtail ID of frontend instance
backend_log_id: Stringlogtail ID of backend instance
os: Stringoperating system the client runs on (a version.OS value)
os_version: StringOSVersion is the version of the OS, if available.
For Android, it's like "10", "11", "12", etc. For iOS and macOS it's like
"15.6.1" or "12.4.0". For Windows it's like "10.0.19044.1889". For
FreeBSD it's like "12.3-STABLE".
For Linux, prior to Tailscale 1.32, we jammed a bunch of fields into this
string on Linux, like "Debian 10.4; kernel=xxx; container; env=kn" and so
on. As of Tailscale 1.32, this is simply the kernel version on Linux, like
"5.10.0-17-amd64".container: Option<bool>best-effort whether the client is running in a container
env: Stringa hostinfo.EnvType in string form
distro: String"debian", "ubuntu", "nixos", ...distro_version: String"20.04", ...distro_code_name: String"jammy", "bullseye", ...app: StringApp is used to disambiguate Tailscale clients that run using tsnet.
desktop: Option<bool>if a desktop was detected on Linux
package: StringTailscale package to disambiguate (“choco”, “appstore”, etc; “” for unknown)
device_model: Stringmobile phone model (“Pixel 3a”, “iPhone12,3”)
push_device_token: StringmacOS/iOS APNs device token for notifications (and Android in the future)
hostname: Stringname of the host the client runs on
shields_up: boolindicates whether the host is blocking incoming connections
indicates this node exists in netmap because it’s owned by a shared-to user
no_logs_no_support: boolindicates that the user has opted out of sending logs and support
wire_ingress: boolWireIngress indicates that the node would like to be wired up server-side (DNS, etc) to be able to use Tailscale Funnel, even if it’s not currently enabled. For example, the user might only use it for intermittent foreground CLI serve sessions, for which they’d like it to work right away, even if it’s disabled most of the time. As an optimization, this is only sent if IngressEnabled is false, as IngressEnabled implies that this option is true.
ingress_enabled: boolif the node has any funnel endpoint enabled
allows_update: boolindicates that the node has opted-in to admin-console-drive remote updates
machine: Stringthe current host’s machine type (uname -m)
go_arch: StringGOARCH value (of the built binary)
go_arch_var: StringGOARM, GOAMD64, etc (of the built binary)
go_version: StringGo version binary was built with
routable_ips: Vec<String>set of IP ranges this client can route
set of ACL tags this node wants to claim
wol_macs: Vec<String>MAC address(es) to send Wake-on-LAN packets to wake this node (lowercase hex w/ colons)
services: Vec<Service>services advertised by this machine
net_info: Option<NetInfo>§ssh_host_keys: Vec<String>if advertised
cloud: String§userspace: Option<bool>if the client is running in userspace (netstack) mode
userspace_router: Option<bool>if the client’s subnet router is running in userspace (netstack) mode
app_connector: Option<bool>if the client is running the app-connector service
services_hash: Stringopaque hash of the most recent list of tailnet services, change in hash indicates config should be fetched via c2n
exit_node_id: Stringthe client’s selected exit node, empty when unselected.
location: Option<Location>Location represents geographical location data about a Tailscale host. Location is optional and only set if explicitly declared by a node.
t_p_m: Option<TPMInfo>TPM device metadata, if available
state_encrypted: Option<bool>StateEncrypted reports whether the node state is stored encrypted on
disk. The actual mechanism is platform-specific:
* Apple nodes use the Keychain
* Linux and Windows nodes use the TPM
* Android apps use EncryptedSharedPreferences