C#实现内网穿透方案
内网穿透的核心原理是通过公网服务器中转流量,将内网服务暴露到公网。以下是完整实现方案:
实现原理
- 公网服务器:作为流量中转站,监听两个端口
- 控制端口:与内网客户端保持长连接
- 服务端口:接收外部用户请求
- 内网客户端:连接公网服务器,建立隧道
- 数据转发:通过双向流实现请求/响应转发
公网服务器端代码
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
public class TunnelServer
{
private TcpListener _controlListener;
private TcpListener _serviceListener;
private TcpClient _tunnelClient;
private readonly int _controlPort;
private readonly int _servicePort;
public TunnelServer(int controlPort, int servicePort)
{
_controlPort = controlPort;
_servicePort = servicePort;
}
public void Start()
{
// 监听内网客户端连接
_controlListener = new TcpListener(IPAddress.Any, _controlPort);
_controlListener.Start();
Console.WriteLine($"控制端口监听: {
_controlPort}");
// 监听外部用户请求
_serviceListener = new TcpListener(IPAddress.Any, _servicePort);
_serviceListener.Start();
Console.WriteLine($"服务端口监听: {
_servicePort}</

最低0.47元/天 解锁文章
750

被折叠的 条评论
为什么被折叠?



