C# 端口转发软件
张静茹2015/12/11软件综合 IP:山东
C# 端口转发软件 用途自己想,与我无关



<code class="lang-c">static void Main(string[] args)
{
 
    TcpListene = new TcpListener(IPAddress.Parse("192.168.1.101"), 8790);//手机用的IP和端口 IP是你的电脑网卡的IP 端口随意
    TcpListene.Start();//开始监听
    new Task(() => 
    {
        while (true)
        {
            NewClient(TcpListene.AcceptTcpClient());//新客户端接入
        }
    }).Start();
}
 
void NewClient(TcpClient BrowseService)//新客户端接入
{
    TcpClient AgencyClient = new TcpClient();//链接到蓝灯代理服务器
    AgencyClient.Connect(IPAddress.Parse("127.0.0.1"), 8787);//蓝灯默认开放8787端口
 
    var BrowserStream = BrowseService.GetStream();
    var AgencyStream = AgencyClient.GetStream();
    new Task(() => 
    {
        byte[] buffer = new byte[64];
        int count = 0;
        while ((count = BrowserStream.Read(buffer, 0, buffer.Length)) != 0)
        {
            try { AgencyStream.Write(buffer, 0, count); }//浏览器来的数据发给蓝灯
            catch (Exception) { break; }
            //Console.WriteLine(string.Format("Beowser -> Agency:{0}", Encoding.Default.GetString(buffer,0,count)));//监视通信数据
        }
        BrowserStream.Close();
    }).Start();
 
    new Task(() => 
    {
        byte[] buffer = new byte[64];
        int count = 0;
        while ((count = AgencyStream.Read(buffer, 0, buffer.Length)) != 0)
        {
            try { BrowserStream.Write(buffer, 0, count); }//蓝灯来的的数据发给浏览器
            catch (Exception) { break; }
            //Console.WriteLine(string.Format("Agency -> Beowser:{0}", Encoding.Default.GetString(buffer, 0, count)));//监视通信数据
        }
        AgencyStream.Close();
    }).Start();
}</code>

来自:计算机科学 / 软件综合
20
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
张静茹 作者
8年5个月前 IP:山东
800476
我不确定 说出具体使用方法是否安全   介绍梯子软件会被删帖吗?
我的用途是监视 浏览器通信数据
还有蓝灯开放127.0.0.1:8787
用软件转发到192.168.1.101:8790
然后手机设置这个代理地址 就可以了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
smith
8年5个月前 IP:广东
800480
ssh转发用在一些国外的主机上面效率很低,这种转发还是很有用的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年5个月前 IP:山东
800483
引用 smith:
ssh转发用在一些国外的主机上面效率很低,这种转发还是很有用的
用了之后 chrome的速度明显慢了很多,不知道是C#效率低 还是C#的socket效率低,还是别的问题
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yaozhiyu
8年5个月前 IP:黑龙江
800510
不用这么麻烦,LANTERN修改一下配置文件,可以在网卡地址上监听的,手机直接设代理就行了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年5个月前 IP:山东
800519
引用 yaozhiyu:
不用这么麻烦,LANTERN修改一下配置文件,可以在网卡地址上监听的,手机直接设代理就行了
肿么改?没发现蓝灯的配置文件在哪
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年5个月前 IP:山东
800548
目前这版 效果不错,速度快很多


<code class="lang-c">TcpListener TcpListene;
private void Form1_Load(object sender, EventArgs e)
{
    TcpListene = new TcpListener(IPAddress.Parse("192.168.1.101"), 8790);
    TcpListene.Start();//开始监听
    new Task(() => 
    {
        while (true)
        {
            NewClient(TcpListene.AcceptTcpClient());
        }
    }).Start();
}
long a = 0, b = 0, c = 0, d = 0, f = 0;
void NewClient(TcpClient BrowseService)//新客户端接入
{
    TcpClient AgencyClient = new TcpClient();//链接到代理服务器
    AgencyClient.Connect(IPAddress.Parse("127.0.0.1"), 8787);
    var BrowserStream = BrowseService.GetStream();
    var AgencyStream = AgencyClient.GetStream();
    a++;
    Task t1 = new Task(() => 
    {
        using (AgencyClient) using (BrowseService) using (AgencyStream) using (BrowserStream)
        {
            byte[] buffer = new byte[128];
            int count = 0;
            while (true)
            {
                try
                {
                    if ((count = BrowserStream.Read(buffer, 0, buffer.Length)) == 0) break;
                    AgencyStream.Write(buffer, 0, count); 
                } catch (Exception) { d++; break; }
                //Console.WriteLine(string.Format("Beowser -> Agency:{0}", Encoding.Default.GetString(buffer,0,count)));
            }
            b++; 
        }
    });
    t1.Start();
    Task t2 = new Task(() => 
    {
        using (AgencyClient) using (BrowseService) using (AgencyStream) using (BrowserStream)
        {
            byte[] buffer = new byte[128];
            int count = 0;
            while (true)
            {
                try
                {
                    if ((count = AgencyStream.Read(buffer, 0, buffer.Length)) == 0) break;
                    BrowserStream.Write(buffer, 0, count); 
                }
                catch (Exception) { f++; break; }
                //Console.WriteLine(string.Format("Agency -> Beowser:{0}", Encoding.Default.GetString(buffer, 0, count)));
            }
            c++; 
        }
    });
    t2.Start();
}
 
private void timer1_Tick(object sender, EventArgs e)
{
    this.Invoke(new Action(()=>{
        label1.Text = string.Format("全部创建socket:{0}个\r\n关闭了socket:{2}个\r\n现有socke:{1}个\r\nb={3}个\r\nc={4}\r\nd={5}\r\nf={6}", a, a - (b + c)/2, (b + c)/2, b, c, d, f);
    }));
}</code>
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yaozhiyu
8年5个月前 IP:黑龙江
800553
引用 张静茹:
肿么改?没发现蓝灯的配置文件在哪
C:\Users\你的用户名\AppData\Roaming\Lantern目录下有一个文件lantern-2.0.10.yaml(可能版本不一样名字有点区别),用写字板打开(记事本打开不换行),有一行
addr: 127.0.0.1:8787
把地址127.0.0.1改成你的网卡地址就行了,另外注意防火墙要放开
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年5个月前 IP:山东
800556
引用 yaozhiyu:
C:\Users\你的用户名\AppData\Roaming\Lantern目录下有一个文件lantern-2.0.10.yaml(可能版本不一样名字有点区别),用写字板打开(记事本打开不换行),有一行
addr: 127.0.0.1:8...
谢谢
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
我说要有光
8年5个月前 IP:河北
800638
<code class="lang-bash">iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT --to 42.42.42.42:8787
iptables -t nat -I POSTROUTING -p tcp --dport 8787 -j MASQUERADE</code>
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年5个月前 IP:山东
800648
引用 我说要有光:
iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT --to 42.42.42.42:8787
iptables -t nat -I POSTROUTING -p tcp -...
这是linux的命令吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
luobinme
8年5个月前 IP:广东
800930
iptables 的 nat 转发  广域网行么?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
已退休少先队员
8年5个月前 IP:江苏
801387
lantern推特里早就给画上安卓版客户端的大饼了。。。可是至今我们还没吃到。。。不知道什么时候真的给填上。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yaozhiyu
8年5个月前 IP:黑龙江
801433
引用 luobinme:
iptables 的 nat 转发  广域网行么?
当然可以,上面这两句是同时做SNAT和DNAT,把发到本机8080的代理请求转发到42.42.42.42.8787的代理服务器上,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yaozhiyu
8年5个月前 IP:黑龙江
801434
引用 我说要有光:
iptables -t nat -I PREROUTING -p tcp --dport 8080 -j DNAT --to 42.42.42.42:8787
iptables -t nat -I POSTROUTING -p tcp -...
还要改FORWARD吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
acmilan
8年5个月前 IP:四川
801436
引用 张静茹:
这是linux的命令吧
windows下好像可以用netsh实现端口转发
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
金坷居士
8年4个月前 IP:北京
803250
支持UDP转发不
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年4个月前 IP:江苏
803287
引用 金坷居士:
支持UDP转发不
需要改
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
yaozhiyu
8年4个月前 IP:辽宁
803501
无标题.png
呵呵在百度贴吧不会是同一个人吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年4个月前 IP:江苏
803567
引用 yaozhiyu:
呵呵在百度贴吧不会是同一个人吧
不是
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
张静茹
进士 学者 机友 笔友
文章
138
回复
1857
学术分
1
2010/12/30注册,2天17时前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}