diff --git a/tun/tun.go b/tun/tun.go index 4b651ca..7cdecad 100644 --- a/tun/tun.go +++ b/tun/tun.go @@ -52,7 +52,11 @@ func (t *SourceSink) Source() (proxy.Packet, error) { var good, bad float64 func (t *SourceSink) Sink(packet proxy.Packet) error { - _, err := t.tun.Write(packet.Contents(), 4) + // make space for tun header + content := make([]byte, len(packet.Contents())+4) + copy(content[4:], packet.Contents()) + + _, err := t.tun.Write(content, 4) if err != nil { switch err.(type) { case *os.PathError: