config: default to listening for p2p on localhost when tor enabled
When Tor is enabled, this change allows manual hidden service configuration by defaulting to listening for p2p connections on the loopback address. It also allows overriding this manually for situations where the Tor daemon is running on another machine, such as when using Whonix or OnionPi-like systems.
This commit is contained in:
parent
288870f043
commit
66a150297a
27
config.go
27
config.go
@ -502,12 +502,6 @@ func loadConfig() (*config, error) {
|
||||
case cfg.DisableListen && (cfg.Tor.V2 || cfg.Tor.V3):
|
||||
return nil, errors.New("listening must be enabled when " +
|
||||
"enabling inbound connections over Tor")
|
||||
case cfg.Tor.Active && (!cfg.Tor.V2 && !cfg.Tor.V3):
|
||||
// If an onion service version wasn't selected, we'll assume the
|
||||
// user is only interested in outbound connections over Tor.
|
||||
// Therefore, we'll disable listening in order to avoid
|
||||
// inadvertent leaks.
|
||||
cfg.DisableListen = true
|
||||
}
|
||||
|
||||
if cfg.Tor.PrivateKeyPath == "" {
|
||||
@ -866,9 +860,14 @@ func loadConfig() (*config, error) {
|
||||
|
||||
// Listen on the default interface/port if no listeners were specified.
|
||||
// An empty address string means default interface/address, which on
|
||||
// most unix systems is the same as 0.0.0.0.
|
||||
// most unix systems is the same as 0.0.0.0. If Tor is active, we
|
||||
// default to only listening on localhost for hidden service
|
||||
// connections.
|
||||
if len(cfg.RawListeners) == 0 {
|
||||
addr := fmt.Sprintf(":%d", defaultPeerPort)
|
||||
if cfg.Tor.Active {
|
||||
addr = fmt.Sprintf("localhost:%d", defaultPeerPort)
|
||||
}
|
||||
cfg.RawListeners = append(cfg.RawListeners, addr)
|
||||
}
|
||||
|
||||
@ -948,20 +947,6 @@ func loadConfig() (*config, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure that we are only listening on localhost if Tor inbound support
|
||||
// is enabled.
|
||||
if cfg.Tor.V2 || cfg.Tor.V3 {
|
||||
for _, addr := range cfg.Listeners {
|
||||
if lncfg.IsLoopback(addr.String()) {
|
||||
continue
|
||||
}
|
||||
|
||||
return nil, errors.New("lnd must *only* be listening " +
|
||||
"on localhost when running with Tor inbound " +
|
||||
"support enabled")
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure that the specified minimum backoff is below or equal to the
|
||||
// maximum backoff.
|
||||
if cfg.MinBackoff > cfg.MaxBackoff {
|
||||
|
Loading…
Reference in New Issue
Block a user