Distance issue of RFM95 with 5dB/900MHz antenna

Hi everyone!
I’m testing the RF distance of sx1276 module.
Here’s my configuration (tx/rx both of are the same):
Raspberry Pi3 + RFM95 + 5dB antenna , run the python code.
tx_power = 17
SF = 11
BW = 250k

This is short distance test on my desk.
As you can see the RSSI are around -10 dB.

This is test 200 meter without any building.
The RSSI are around -110.
Imgur
Imgur

But how can I increase the distance up to a few km?
The distance should be longer!

@brocaar hi
I Bought outer antenna for gateway and end nodes but I cannot get Maximum distance form these antenna. my gateway and end node hardware are these:

end node:

Arduino Pro mini

RFM95

Battery 1100mA, 3.7v

antenna SD4 3db

in end nodes LMIC library is used …and in this library one change is done ( in lmic.h line 696 setDrJoin(DRCHG_SET, DR_SF7); to setDrJoin(DRCHG_SET, DR_SF9); )

gateway:

Raspberry Pi

Concentrator 880a

base station antenna 12dbi

If my config is problem please inform me.