1wsdd(1) General Commands Manual wsdd(1)
2
3
4
6 wsdd - A Web Service Discovery host daemon.
7
9 wsdd [options]
10
12 wsdd implements a Web Service Discovery host daemon. This enables
13 (Samba) hosts, like your local NAS device, to be found by Web Service
14 Discovery Clients like Windows.
15
17 -4, --ipv4only
18 See below.
19
20 -6, --ipv6only
21 Restrict to the given address family. If both options are speci‐
22 fied no addreses will be available and wsdd will exit.
23
24 -c DIRECTORY, --chroot DIRECTORY
25 chroot into the given DIRECTORY after initialization has been
26 performed and right before the handling of incoming messages
27 starts. The new root directory can be empty. Consider using the
28 -u option as well.
29
30 -d DOMAIN, --domain DOMAIN
31 Assume that the host running wsdd joined an ADS domain. This
32 will make wsdd report the host being a domain member. It dis‐
33 ables workgroup membership reporting. The (provided) hostname is
34 automatically converted to lower case. Use the `-p` option to
35 change this behavior.
36
37 -H HOPLIMIT, --hoplimit HOPLIMIT
38 Set the hop limit for multicast packets. The default is 1 which
39 should prevent packets from leaving the local network segment.
40
41 -i INTERFACE, --interface INTERFACE
42 Specify on which interfaces wsdd will be listening on. If no
43 interfaces are specified, all interfaces are used. The loop-back
44 interface is never used, even when it was explicitly specified.
45 For interfaces with IPv6 addresses, only link-local addresses
46 will be used for announcing the host on the network. This option
47 can be provided multiple times in order to use more than inter‐
48 face (but no all).
49
50 -n HOSTNAME, --hostname HOSTNAME
51 Override the host name wsdd uses during discovery. By default
52 the machine's host name is used (look at hostname(1)). Only the
53 host name part of a possible FQDN will be used in the default
54 case.
55
56 -p, --preserve-case
57 Preserve the hostname as it is. Without this option, the host‐
58 name is converted as follows. For workgroup environments (see
59 -w) the hostname is made upper case by default. Vice versa it is
60 made lower case for usage in domains (see -d).
61
62 -s, --shortlog
63 Use a shorter logging format that only includes the level and
64 message. This is useful in cases where the logging mechanism,
65 like systemd on Linux, automatically prepends a date and process
66 name plus ID to the log message.
67
68 -t, --nohttp
69 Do not service HTTP requests of the WSD protocol. This option is
70 intended for debugging purposes where another process may handle
71 the Get messages.
72
73 -u USER[:GROUP], --user USER[:GROUP]
74 Change user (and group) when running before handling network
75 packets. Together with -c this option can be used to increase
76 security if the execution environment, like the init system,
77 cannot ensure this in another way.
78
79 -U UUID, --uuid UUID
80 The WSD specification requires a device to have a unique address
81 that is stable across reboots or changes in networks. In the
82 context of the standard, it is assumed that this is something
83 like a serial number. wsdd uses the UUID version 5 with the DNS
84 namespace and the host name of the local machine as inputs.
85 Thus, the host name should be stable and not be modified, e.g.
86 by DHCP. However, if you want wsdd to use a specific UUID you
87 can use this option.
88
89 -v, --verbose
90 Additively increase verbosity of the log output. A single occur‐
91 rence of -v/--verbose sets the log level to INFO. More -v
92 options set the log level to DEBUG.
93
94 -w WORKGROUP, --workgroup WORKGROUP
95 By default wsdd reports the host is a member of a workgroup
96 rather than a domain (use the -d/--domain option to override
97 this). With -w/--workgroup the default workgroup name can be
98 changed. The default work group name is WORKGROUP. The (pro‐
99 vided) hostname is automatically converted to upper case. Use
100 the `-p` option to change this behavior.
101
103 Handle traffic on eth0 and eth2 only, but only with IPv6 addresses
104 wsdd -i eth0 -i eth2 -6
105
106 or
107
108 wsdd --interface eth0 --interface eth2 --ipv6only
109
110 Set the Workgroup according to smb.conf, be verbose, run with dropped priv‐
111 ileges, and change the root directory to an (empty) directory
112 SMB_GROUP=$(grep -i '^workgroup=' smb.conf | cut -f2 -d= | tr -d
113 '[:blank:]')
114
115 wsdd -v -w $SMB_GROUP -u daemon:daemon -c /var/run/wsdd/chroot
116
118 Both incoming and outgoing multicast traffic on port 3702 must be
119 allowed. For IPv4, the multicast address is `239.255.255.250`, for IPv6
120 the link local SSDP multicast address (`fe02::c`) is used.
121
122 Incoming TCP traffic (and related outgoing traffic) on port 5357 must
123 be allowed.
124
126 wsdd does not implement any security feature, e.g. by using TLS for the
127 http service. This is because wsdd's intended usage is within private,
128 i.e. home, LANs. The Hello message contains the hosts transport
129 address, i.e. the IP address which speeds up discovery (avoids Resolve
130 message).
131
133 Using only IPv6 on FreeBSD
134 If wsdd is running on FreeBSD using IPv6 only, the host running wsdd
135 may not be reliably discovered. The reason appears to be that Windows
136 is not always able to connect to the HTTP service for unknown reasons.
137 As a workaround, run wsdd with IPv4 only.
138
139 Tunnel/Bridge Interface
140 If tunnel/bridge interfaces like those created by OpenVPN or Docker
141 exist, they may interfere with wsdd if executed without providing an
142 interface that it should bind to (so it binds to all). In such cases,
143 the wsdd hosts appears after wsdd has been started but it disappears
144 when an update of the Network view in Windows Explorer is forced,
145 either by refreshing the view or by a reboot of the Windows machine.
146 To solve this issue, the interface that is connected to the network on
147 which the host should be announced needs to be specified with the
148 -i/--interface option. This prevents the usage of the tunnel/bridge
149 interfaces.
150
151 Background: Tunnel/bridge interfaces may cause Resolve requests from
152 Windows hosts to be delivered to wsdd multiple times, i.e. duplicates
153 of such request are created. If wsdd receives such a request first from
154 a tunnel/bridge it uses the transport address (IP address) of that
155 interface and sends the response via unicast. Further duplicates are
156 not processed due to the duplicate message detection which is based on
157 message UUIDs. The Windows host which receives the response appears to
158 detect a mismatch between the transport address in the ResolveMatch
159 message (which is the tunnel/bridge address) and the IP of the sending
160 host/interface (LAN IP, e.g.). Subsequently, the wsdd host is ignored
161 by Windows.
162
163
164
165 wsdd(1)