[GH-ISSUE #302] 内网穿透如何强制IPv4 #217

Closed
opened 2026-02-27 23:16:00 +03:00 by kerem · 4 comments
Owner

Originally created by @ablebodied on GitHub (Jul 30, 2019).
Original GitHub issue: https://github.com/snail007/goproxy/issues/302

Expected Behavior

用 ./proxy server --udp -r "udp://0.0.0.0:3389@:3389" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key 这个命令希望监听在ipv4,电脑有多个网卡,而且同时支持ipv6跟ipv4,现在想ipv4连接内网机器

Current Behavior

现在运行上述命令监听的是ipv6,通过netstat 查看是 udp6协议

Possible Solution

自己试了把0.0.0.0 改成服务器的公网地址,但是并没奏效,还是不能转发

Steps to Reproduce

Context (Environment)

  1. proxy version is : v8.0?
  2. full command is :./proxy server --udp -r "udp://0.0.0.0:3389@:3389" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key ?
  3. system is 服务器是Debian,内网机器是win10 :
  4. full log is: ?
Originally created by @ablebodied on GitHub (Jul 30, 2019). Original GitHub issue: https://github.com/snail007/goproxy/issues/302 <!--- Provide a general summary of the issue in the Title above --> ## Expected Behavior 用 ./proxy server --udp -r "udp://0.0.0.0:3389@:3389" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key 这个命令希望监听在ipv4,电脑有多个网卡,而且同时支持ipv6跟ipv4,现在想ipv4连接内网机器 ## Current Behavior 现在运行上述命令监听的是ipv6,通过netstat 查看是 udp6协议 ## Possible Solution 自己试了把0.0.0.0 改成服务器的公网地址,但是并没奏效,还是不能转发 ## Steps to Reproduce ## Context (Environment) <!--- How has this issue affected you? What are you trying to accomplish? --> <!--- Providing context helps us come up with a solution that is most useful in the real world --> 1. proxy version is : v8.0? 1. full command is :./proxy server --udp -r "udp://0.0.0.0:3389@:3389" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key ? 1. system is 服务器是Debian,内网机器是win10 : 1. full log is: ?
kerem closed this issue 2026-02-27 23:16:00 +03:00
Author
Owner

@snail007 commented on GitHub (Jul 30, 2019):

udp6包含udp4,你用udp4连接server,代理client自动就会用udp4与目标通讯。

<!-- gh-comment-id:516461996 --> @snail007 commented on GitHub (Jul 30, 2019): udp6包含udp4,你用udp4连接server,代理client自动就会用udp4与目标通讯。
Author
Owner

@ablebodied commented on GitHub (Jul 31, 2019):

$ ip addr   
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f4:**:04:**:df:** brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.254/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 ****:****:d800:1472::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f66d:4ff:fe9e:df46/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f4:6d:04:9e:df:47 brd ff:ff:ff:ff:ff:ff
    inet 210.45.n.n/24 brd 210.45.n.n  scope global eth1
       valid_lft forever preferred_lft forever
    inet6 ****:****:d800:472:n:n:n:n/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f66d:4ff:fe9e:df47/64 scope link 
       valid_lft forever preferred_lft forever
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    link/none 
    inet 10.9.8.1 peer 10.9.8.2/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::b0fe:3b48:b7f1:233f/64 scope link flags 800 
       valid_lft forever preferred_lft forever

上面的是IP信息,部分信息隐去了。
服务器端用了两个命令:
./proxy bridge -p ":33080" -C proxy.crt -K proxy.key
./proxy server --udp -r ":33890@:3389" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key
要连接的PC上运行了一个命令
proxy client -P "210.n.n.n:33080" -C proxy.crt -K proxy.key
上面两个电脑可以连上,但是无法通过其他电脑访问到上面PC

服务器运行后显示 2019/07/31 09:57:55 server on [::]:33890
netstat 显示 udp6 0 0 :::33890 :::* 3332/./proxy
但是通过服务器的ipv4地址去连接没响应,连不上,这是哪里的问题呢?

<!-- gh-comment-id:516663017 --> @ablebodied commented on GitHub (Jul 31, 2019): ``` $ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether f4:**:04:**:df:** brd ff:ff:ff:ff:ff:ff inet 192.168.1.254/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 ****:****:d800:1472::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::f66d:4ff:fe9e:df46/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether f4:6d:04:9e:df:47 brd ff:ff:ff:ff:ff:ff inet 210.45.n.n/24 brd 210.45.n.n scope global eth1 valid_lft forever preferred_lft forever inet6 ****:****:d800:472:n:n:n:n/64 scope global valid_lft forever preferred_lft forever inet6 fe80::f66d:4ff:fe9e:df47/64 scope link valid_lft forever preferred_lft forever 4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/none inet 10.9.8.1 peer 10.9.8.2/32 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::b0fe:3b48:b7f1:233f/64 scope link flags 800 valid_lft forever preferred_lft forever ``` 上面的是IP信息,部分信息隐去了。 服务器端用了两个命令: ` ./proxy bridge -p ":33080" -C proxy.crt -K proxy.key ` ` ./proxy server --udp -r ":33890@:3389" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key ` 要连接的PC上运行了一个命令 ` proxy client -P "210.n.n.n:33080" -C proxy.crt -K proxy.key` 上面两个电脑可以连上,但是无法通过其他电脑访问到上面PC 服务器运行后显示 2019/07/31 09:57:55 server on [::]:33890 netstat 显示 `udp6 0 0 :::33890 :::* 3332/./proxy ` , 但是通过服务器的ipv4地址去连接没响应,连不上,这是哪里的问题呢?
Author
Owner

@snail007 commented on GitHub (Jul 31, 2019):

3389是udp服务?我看你映射的是UDP。

<!-- gh-comment-id:516670209 --> @snail007 commented on GitHub (Jul 31, 2019): 3389是udp服务?我看你映射的是UDP。
Author
Owner

@ablebodied commented on GitHub (Jul 31, 2019):

3389是udp服务?我看你映射的是UDP。

之前看了网上 RDP3389是同时监听UDP与TCP 的, ,被误导了,看了自己电脑上的显示结果

  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1244
  TCP    [::]:3389              [::]:0                 LISTENING       1244
  UDP    0.0.0.0:3389           *:*                                    1244
  UDP    [::]:3389              *:*                                    1244

这个UDP貌似没监听,改了TCP可以了,谢谢了

<!-- gh-comment-id:516670663 --> @ablebodied commented on GitHub (Jul 31, 2019): > 3389是udp服务?我看你映射的是UDP。 之前看了网上 [RDP](https://en.wikipedia.org/wiki/Remote_Desktop_Protocol)3389是同时监听UDP与TCP 的, ,被误导了,看了自己电脑上的显示结果 ``` TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1244 TCP [::]:3389 [::]:0 LISTENING 1244 UDP 0.0.0.0:3389 *:* 1244 UDP [::]:3389 *:* 1244 ``` 这个UDP貌似没监听,改了TCP可以了,谢谢了
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/goproxy#217
No description provided.