Add sockopt interface setting for binding outbound to a particular device like "eth0" (#1494)

* Update sockopt_linux.go

add Interface Name

* Update config.pb.go

add Interface Name

* Update transport_internet.go

add Interface Name

* Update config.pb.go

* update config.proto add interface

* Update config.pb.go
This commit is contained in:
aeeq 2023-01-09 22:26:23 +08:00 committed by yuhan6665
parent 32ce7cd730
commit 620eb63c1b
4 changed files with 43 additions and 23 deletions

View file

@ -46,6 +46,12 @@ func applyOutboundSocketOptions(network string, address string, fd uintptr, conf
return newError("failed to set SO_MARK").Base(err)
}
}
if config.Interface != "" {
if err := syscall.BindToDevice(int(fd), config.Interface); err != nil {
return newError("failed to set Interface").Base(err)
}
}
if isTCPSocket(network) {
tfo := config.ParseTFOValue()